yanghui
2022-10-11 24b73b7b9572419a27b3091ccb2c3f28083ff2d9
#feat 修改bug
4个文件已修改
1234 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java 1188 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java
@@ -74,7 +74,7 @@
    @ApiOperation(value = "excel导入楼栋信息--注:以前的接口,不需要对接")
    @PostMapping(value = "/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "房屋信息管理-导入楼栋信息", operType = 0, businessType = "导入楼栋信息")
    @OperLog(operModul = "房屋信息管理-导入楼栋信息", operType = 0, businessType = "导入楼栋信息-")
    public R downloadPopulationTemplate(@RequestParam MultipartFile file) {
        InputStream inputStream;
        try {
@@ -148,7 +148,7 @@
    @ApiOperation(value = "添加单元")
    @PostMapping("/add/unit")
    @OperLog(operModul = "房屋信息管理-添加单元", operType = 1, businessType = "添加单元")
    @OperLog(operModul = "房屋信息管理-添加单元", operType = 1, businessType = "添加单元-")
    public R addUnit(@RequestBody AddBuildingUnitDto addBuildingUnitDto) {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
@@ -162,7 +162,7 @@
    @ApiOperation(value = "修改单元")
    @PostMapping("/edit/unit")
    @OperLog(operModul = "房屋信息管理-修改单元", operType = 2, businessType = "修改单元")
    @OperLog(operModul = "房屋信息管理-修改单元", operType = 2, businessType = "修改单元-")
    public R editUnit(@RequestBody EditBuildingUnitDto editBuildingUnitDto) {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
@@ -335,7 +335,7 @@
    @ApiOperation("删除楼栋")
    @GetMapping("/delete")
    @OperLog(operModul = "房屋信息管理-删除", operType = 3, businessType = "删除")
    @OperLog(operModul = "房屋信息管理-删除", operType = 3, businessType = "删除-")
    public R delete(@RequestParam("id")Long id){
        return communityService.buildingDelete(id);
    }
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
@@ -155,7 +155,7 @@
    //@OperLog(operModul = "党支部管理", operType = 1)
    @ApiOperation(value = "新增党支部")
    @PostMapping("addpartyorganization")
    @OperLog(operModul = "报道党员管理-新增党支部", operType = 1, businessType = "新增党支部")
    @OperLog(operModul = "报道党员管理-新增党支部", operType = 1, businessType = "新增党支部-")
    public R addPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
        Long communityId = this.getCommunityId();
        partyOrganizationVO.setCommunityId(communityId);
@@ -166,7 +166,7 @@
    //@OperLog(operModul = "党支部管理", operType = 2)
    @ApiOperation(value = "编辑党支部")
    @PostMapping("updatepartyorganization")
    @OperLog(operModul = "报道党员管理-编辑党支部", operType = 2, businessType = "编辑党支部")
    @OperLog(operModul = "报道党员管理-编辑党支部", operType = 2, businessType = "编辑党支部-")
    public R updatePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
        Long id = partyOrganizationVO.getId();
        if (null == id || 0 == id) {
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -89,7 +89,7 @@
    @ApiOperation(value = "excel导入实有人口")
    @PostMapping(value = "/serve/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-实有人口导入", operType = 0, businessType = "实有人口导入")
    @OperLog(operModul = "居民信息管理-实有人口导入", operType = 0, businessType = "实有人口导入-")
    public R downloadPopulationTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -131,7 +131,7 @@
    @ApiOperation(value = "excel导入吸毒人员")
    @PostMapping(value = "/serve/importDrug", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-吸毒人员导入", operType = 0, businessType = "吸毒人员导入")
    @OperLog(operModul = "居民信息管理-吸毒人员导入", operType = 0, businessType = "吸毒人员导入-")
    public R importDrug(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -151,7 +151,7 @@
    @ApiOperation(value = "excel导入社区矫正人员")
    @PostMapping(value = "/serve/importCorrect", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-社区矫正人员导入", operType = 0, businessType = "社区矫正人员导入")
    @OperLog(operModul = "居民信息管理-社区矫正人员导入", operType = 0, businessType = "社区矫正人员导入-")
    public R importCorrect(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -172,7 +172,7 @@
    @ApiOperation(value = "excel导入重精人员")
    @PostMapping(value = "/serve/importMajor", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-重精人员导入", operType = 0, businessType = "重精人员导入")
    @OperLog(operModul = "居民信息管理-重精人员导入", operType = 0, businessType = "重精人员导入-")
    public R importMajor(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -192,7 +192,7 @@
    @ApiOperation(value = "excel导入邪教人员")
    @PostMapping(value = "/serve/importCult", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-邪教人员导入", operType = 0, businessType = "邪教人员导入")
    @OperLog(operModul = "居民信息管理-邪教人员导入", operType = 0, businessType = "邪教人员导入-")
    public R importCult(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -213,7 +213,7 @@
    @ApiOperation(value = "excel导入刑释人员")
    @PostMapping(value = "/serve/importRehabilitation", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-刑释人员导入", operType = 0, businessType = "刑释人员导入")
    @OperLog(operModul = "居民信息管理-刑释人员导入", operType = 0, businessType = "刑释人员导入-")
    public R importRehabilitation(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -234,7 +234,7 @@
    @ApiOperation(value = "excel导入重点上访人员")
    @PostMapping(value = "/serve/importKey", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-重点上访人员导入", operType = 0, businessType = "重点上访人员导入")
    @OperLog(operModul = "居民信息管理-重点上访人员导入", operType = 0, businessType = "重点上访人员导入-")
    public R importKey(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -255,7 +255,7 @@
    @ApiOperation(value = "excel导入服刑人员")
    @PostMapping(value = "/serve/importSentence", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-服刑人员导入", operType = 0, businessType = "服刑人员导入")
    @OperLog(operModul = "居民信息管理-服刑人员导入", operType = 0, businessType = "服刑人员导入-")
    public R importSentence(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -277,7 +277,7 @@
    @ApiOperation(value = "excel导入退役军人")
    @PostMapping(value = "/serve/importVeterans", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-退役军人导入", operType = 0, businessType = "退役军人导入")
    @OperLog(operModul = "居民信息管理-退役军人导入", operType = 0, businessType = "退役军人导入-")
    public R importVeterans(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -299,7 +299,7 @@
    @ApiOperation(value = "excel导入残疾人")
    @PostMapping(value = "/serve/importDisability", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-残疾人导入", operType = 0, businessType = "残疾人导入")
    @OperLog(operModul = "居民信息管理-残疾人导入", operType = 0, businessType = "残疾人导入-")
    public R importDisability(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -321,7 +321,7 @@
    @ApiOperation(value = "excel导入低保户")
    @PostMapping(value = "/serve/importLowSecurity", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-低保户导入", operType = 0, businessType = "低保户导入")
    @OperLog(operModul = "居民信息管理-低保户导入", operType = 0, businessType = "低保户导入-")
    public R importLowSecurity(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -343,7 +343,7 @@
    @ApiOperation(value = "excel导入高龄老人")
    @PostMapping(value = "/serve/importElder", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-高龄老人导入", operType = 0, businessType = "高龄老人导入")
    @OperLog(operModul = "居民信息管理-高龄老人导入", operType = 0, businessType = "高龄老人导入-")
    public R importElder(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -365,7 +365,7 @@
    @ApiOperation(value = "excel导入养老金人员")
    @PostMapping(value = "/serve/importPension", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-养老金人员导入", operType = 0, businessType = "养老金人员导入")
    @OperLog(operModul = "居民信息管理-养老金人员导入", operType = 0, businessType = "养老金人员导入-")
    public R importPension(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -393,7 +393,7 @@
     */
    @ApiOperation(value = "excel-确认导入实有人口")
    @PostMapping(value = "/import/confirm", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理-实有人口导入", operType = 0, businessType = "实有人口导入")
    @OperLog(operModul = "居民信息管理-实有人口导入", operType = 0, businessType = "实有人口导入-")
    public R listSavePopulationConfirm(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -434,7 +434,7 @@
    @ApiOperation(value = "编辑实有人口")
    @PostMapping(value = "/edit")
    @OperLog(operModul = "居民信息管理-编辑", operType = 2, businessType = "编辑")
    @OperLog(operModul = "居民信息管理-编辑", operType = 2, businessType = "编辑-")
    public R editPopulationInfo(@RequestBody ComMngPopulationEditDTO populationEditDTO) {
        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
        return communityService.editPopulation(populationEditDTO, loginUserInfo.getCommunityId());
@@ -1243,7 +1243,7 @@
    @ApiOperation(value = "批量删除实有人口")
    @PostMapping("/delete")
    @OperLog(operModul = "居民信息管理-批量删除实有人口", operType = 3, businessType = "批量删除实有人口")
    @OperLog(operModul = "居民信息管理-批量删除实有人口", operType = 3, businessType = "批量删除实有人口-")
    public R deletePopulations(@RequestBody List<Long> ids) {
        return communityService.deletePopulations(ids, this.getCommunityId());
    }
@@ -2667,7 +2667,7 @@
    @ApiOperation(value = "实有人口-数据导出")
    @PostMapping("/data/export")
    @OperLog(operModul = "居民信息管理-实有人口导出", operType = 0, businessType = "实有人口导出")
    @OperLog(operModul = "居民信息管理-实有人口导出", operType = 0, businessType = "实有人口导出-")
    public R dataExportPopulation(@RequestBody List<Long> Ids) {
        // 获取登陆用户
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -1,38 +1,54 @@
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.IdcardUtil;
import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson.JSON;
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.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
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.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.vos.community.ComAreaTownCommunityVO;
import com.panzhihua.common.model.dtos.user.*;
import com.panzhihua.common.model.vos.*;
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.microCommercialStreet.McsLoginUserInfoVO;
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.common.model.vos.user.*;
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 com.panzhihua.service_user.model.dos.*;
import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
import com.panzhihua.service_user.service.EventGridMemberBuildingRelationService;
import com.panzhihua.service_user.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.beans.BeanUtils;
@@ -43,67 +59,16 @@
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.service.EventGridMemberBuildingRelationService;
import com.panzhihua.service_user.service.UserService;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import cn.hutool.core.util.IdcardUtil;
import lombok.extern.slf4j.Slf4j;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
// import com.panzhihua.common.service.grid.GridService;
@@ -159,15 +124,15 @@
    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="修改防疫信息数据";
    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;
@@ -180,7 +145,7 @@
        Date date = new Date();
        for (int i = 19; i >= 0; i--) {
            Date date1 = DateUtils.addDays(date, -i);
            dates.add(DateFormatUtils.format(date1,"MM-dd" ));
            dates.add(DateFormatUtils.format(date1, "MM-dd"));
        }
        System.out.println(dates);
@@ -192,18 +157,15 @@
    /**
     * 小程序微信用户信息更新
     *
     * @param openid
     *            小程序唯一ID
     * @param sessionKey
     *            会话密钥
     * @param unionid
     *            用户在开放平台的唯一标识符
     * @param openid     小程序唯一ID
     * @param sessionKey 会话密钥
     * @param unionid    用户在开放平台的唯一标识符
     * @return token
     */
    @Override
    public R updateInsertUser(String openid, String sessionKey, String unionid,String appId) {
    public R updateInsertUser(String openid, String sessionKey, String unionid, String appId) {
        SysUserDO sysUserDO =
            userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getOpenid, openid));
                userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getOpenid, openid));
        boolean empty = ObjectUtils.isEmpty(sysUserDO);
        int num = 0;
        Date date = new Date();
@@ -239,14 +201,10 @@
    /**
     * 维护小程序用户基本信息 头像 昵称 性别
     *
     * @param userId
     *            数据库用户ID
     * @param nickName
     *            昵称
     * @param gender
     *            性别
     * @param avatarUrl
     *            头像
     * @param userId    数据库用户ID
     * @param nickName  昵称
     * @param gender    性别
     * @param avatarUrl 头像
     * @return 维护结果
     */
    @Override
@@ -267,16 +225,14 @@
    /**
     * 维护微信用户手机号
     *
     * @param userId
     *            数据库ID
     * @param purePhoneNumber
     *            没有区号的手机号
     * @param userId          数据库ID
     * @param purePhoneNumber 没有区号的手机号
     * @return 维护结果
     */
    @Override
    public R updateUserWeiXinPhone(Long userId, String purePhoneNumber) {
        SysUserDO sysUserDO=userDao.selectById(userId);
        if(sysUserDO!=null){
        SysUserDO sysUserDO = userDao.selectById(userId);
        if (sysUserDO != null) {
            userDao.updateMemberRole(purePhoneNumber, sysUserDO.getPhone());
            userDao.updateServiceTeam(purePhoneNumber, sysUserDO.getPhone());
            sysUserDO.setPhone(purePhoneNumber);
@@ -294,25 +250,23 @@
    /**
     * 认证中心获取平台用户信息
     *
     * @param name
     *            登录账户
     * @param type
     *            用户类型 用户类型 1 小程序 2 运营平台 3 社区平台
     * @param name 登录账户
     * @param type 用户类型 用户类型 1 小程序 2 运营平台 3 社区平台
     * @return 用户基本信息、角色
     */
    @Override
    public R<LoginUserInfoVO> getUserInfo(String name, int type,String appId) {
    public R<LoginUserInfoVO> getUserInfo(String name, int type, String appId) {
        SysUserDO sysUserDO = null;
        if (1 == type) {
            sysUserDO = userDao.selectOne(
                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type).eq(SysUserDO::getOpenid, name));
                    new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type).eq(SysUserDO::getOpenid, name));
        } 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));
                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()
                wrapper.and(sysUserDOLambdaQueryWrapper -> sysUserDOLambdaQueryWrapper.eq(SysUserDO::getAppId, appId).eq(SysUserDO::getAccount, name).or()
                        .eq(SysUserDO::getPhone, name));
            }
            sysUserDO = userDao.selectOne(wrapper);
@@ -329,13 +283,13 @@
        loginUserInfoVO.setAccount(name);
        loginUserInfoVO.setType(sysUserDO.getType());
        loginUserInfoVO.setIsRealNamed(sysUserDO.getIdCard() != null);// 暂时 身份证判断实名制
        if(sysUserDO.getCommunityId()!=null){
        if (sysUserDO.getCommunityId() != null) {
            ComActVO comActVO = userDao.selectCommunity(sysUserDO.getCommunityId());
            loginUserInfoVO.setCommunityId(sysUserDO.getCommunityId());
            if(comActVO!=null){
            if (comActVO != null) {
                loginUserInfoVO.setComActVO(comActVO);
                String areaName=userDao.selectAreaCodeByStreetId(comActVO.getStreetId());
                if(StringUtils.isNotEmpty(areaName)){
                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()));
@@ -358,8 +312,7 @@
    /**
     * 三端获取用户信息
     *
     * @param userId
     *            用户ID
     * @param userId 用户ID
     * @return 用户基本信息、角色
     */
    @Override
@@ -395,8 +348,8 @@
                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){
                SysAppConfig sysAppConfig = sysAppConfigDao.selectOne(new QueryWrapper<SysAppConfig>().lambda().eq(SysAppConfig::getAreaCode, comActVO.getAreaCode()));
                if (sysAppConfig != null) {
                    loginUserInfoVO.setAppId(sysAppConfig.getAppId());
                    loginUserInfoVO.setAppSecret(sysAppConfig.getSecret());
                }
@@ -411,8 +364,8 @@
                loginUserInfoVO.setVolunteerStatus(state);
            }
            //是否四长四员
            Integer countFourMember=comActFourMemberDao.selectCount(new QueryWrapper<ComActFourMember>().lambda().eq(ComActFourMember::getIdCard,sysUserDO.getIdCard()));
            if(countFourMember>0){
            Integer countFourMember = comActFourMemberDao.selectCount(new QueryWrapper<ComActFourMember>().lambda().eq(ComActFourMember::getIdCard, sysUserDO.getIdCard()));
            if (countFourMember > 0) {
                loginUserInfoVO.setIsFourMember(1);
            }
            //是否是社区物业人员
@@ -428,24 +381,21 @@
            //是否是防疫工作人员
            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("盐边县")){
                if (acidMember.getRelationName().equals("panzhihua") || acidMember.getRelationName().equals("西区") || acidMember.getRelationName().equals("东区") || acidMember.getRelationName().equals("仁和区") || acidMember.getRelationName().equals("米易县") || acidMember.getRelationName().equals("盐边县")) {
                    loginUserInfoVO.setIsAcidMember(1);
                }
                else {
                } else {
                    loginUserInfoVO.setIsAcidMember(2);
                }
                loginUserInfoVO.setRelationName(acidMember.getRelationName());
            }
            Integer count=userDao.selectOrgAdmin(phone);
            if(count>0){
            Integer count = userDao.selectOrgAdmin(phone);
            if (count > 0) {
                loginUserInfoVO.setIsCheckUnitAdmin(1);
            }
            Long checkUnitId=userDao.selectCheckUnitId(phone);
            if(checkUnitId!=null){
            Long checkUnitId = userDao.selectCheckUnitId(phone);
            if (checkUnitId != null) {
                loginUserInfoVO.setCheckUnitId(checkUnitId);
            }
            else {
            } else {
                loginUserInfoVO.setIsCheckUnitAdmin(0);
            }
            //是否网格员
@@ -465,8 +415,8 @@
            } else if (isSysUser != null && isSysUser > 0) {
                loginUserInfoVO.setIsmemberrole(1);
            }
            Integer countSocialWorker = userDao.countSocialWorker(phone,userCommunityId);
            if(countSocialWorker>0){
            Integer countSocialWorker = userDao.countSocialWorker(phone, userCommunityId);
            if (countSocialWorker > 0) {
                loginUserInfoVO.setIsSocialWorker(1);
            }
        }
@@ -477,8 +427,7 @@
    /**
     * 修改用户登录密码
     *
     * @param changePasswordVO
     *            新密码
     * @param changePasswordVO 新密码
     * @return 修改结果
     */
    @Override
@@ -510,10 +459,8 @@
    /**
     * 某社区后台人员查询
     *
     * @param param
     *            名字
     * @param communityId
     *            社区id
     * @param param       名字
     * @param communityId 社区id
     * @return 人员集合
     */
    @Override
@@ -521,7 +468,7 @@
        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);
                .eq(SysUserDO::getStatus, 1).eq(SysUserDO::getType, 3);
        if (!ObjectUtils.isEmpty(param)) {
            queryWrapper = queryWrapper.eq(SysUserDO::getName, param);
        }
@@ -540,10 +487,8 @@
    /**
     * 微心愿搜索社区团队人员列表
     *
     * @param param
     *            请求参数
     * @param communityId
     *            社区id
     * @param param       请求参数
     * @param communityId 社区id
     * @return 社区团队人员列表
     */
    @Override
@@ -554,8 +499,7 @@
    /**
     * 分页查询人脸识别
     *
     * @param loginUserInfoVO
     *            查询参数
     * @param loginUserInfoVO 查询参数
     * @return 分页集合
     */
    @Override
@@ -578,8 +522,7 @@
    /**
     * 编辑人脸采集数据通过、驳回、删除
     *
     * @param loginUserInfoVO
     *            操作信息
     * @param loginUserInfoVO 操作信息
     * @return 操作结果
     */
    @Override
@@ -616,14 +559,13 @@
    /**
     * 分页查询人口管理
     *
     * @param userInfoVO
     *            查询参数
     * @param userInfoVO 查询参数
     * @return 分页数据
     */
    @Override
    public R pageUser(AppletUserInfoVO userInfoVO) {
        IPage<AppletUserInfoVO> iPage =
            userDao.pageUser(new Page<>(userInfoVO.getPageNum(), userInfoVO.getPageSize()), userInfoVO);
                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()));
@@ -632,7 +574,7 @@
                StringBuffer sb = new StringBuffer();
                sb.append(record.getTags() + ",");
                if (record.getIsPartymember().equals(1)) {
                    if (!sb.toString().contains("党员")){
                    if (!sb.toString().contains("党员")) {
                        sb.append("党员,");
                    }
                }
@@ -643,7 +585,7 @@
                }
                String tags = sb.toString();
                record.setTags(tags.substring(0, tags.length() - 1));
            }else {
            } else {
                StringBuffer sb = new StringBuffer();
                if (record.getIsPartymember().equals(1)) {
                    sb.append("党员,");
@@ -671,10 +613,10 @@
    public R listTag() {
        List<String> list = new ArrayList<>();
        List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new LambdaQueryWrapper<ComMngUserTagDO>()
                .eq(ComMngUserTagDO::getSysFlag,1));
                .eq(ComMngUserTagDO::getSysFlag, 1));
        if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
            list = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                .collect(Collectors.toList());
                    .collect(Collectors.toList());
        }
        return R.ok(list);
    }
@@ -682,40 +624,38 @@
    /**
     * 人员详情 detailuser
     *
     * @param userId
     *            用户id
     * @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
        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);
            }
        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)){
            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{
        } else {
            loginUserInfoVO.setAreaCode("510423");
        }
        //是否是社区物业人员
@@ -728,10 +668,9 @@
        loginUserInfoVO.setIsAcidMember(0);
        ComActAcidMemberVO acidMember = userDao.selectAcidMemberByPhone(loginUserInfoVO.getPhone());
        if (nonNull(acidMember)) {
            if(acidMember.getRelationName().equals("panzhihua")||acidMember.getRelationName().equals("西区")||acidMember.getRelationName().equals("东区")||acidMember.getRelationName().equals("仁和区")||acidMember.getRelationName().equals("米易县")||acidMember.getRelationName().equals("盐边县")){
            if (acidMember.getRelationName().equals("panzhihua") || acidMember.getRelationName().equals("西区") || acidMember.getRelationName().equals("东区") || acidMember.getRelationName().equals("仁和区") || acidMember.getRelationName().equals("米易县") || acidMember.getRelationName().equals("盐边县")) {
                loginUserInfoVO.setIsAcidMember(1);
            }
            else {
            } else {
                loginUserInfoVO.setIsAcidMember(2);
            }
            loginUserInfoVO.setRelationName(acidMember.getRelationName());
@@ -739,27 +678,25 @@
        loginUserInfoVO.setIdCard(SensitiveUtil.desensitizedIdNumber(loginUserInfoVO.getIdCard()));
        loginUserInfoVO.setPhone(SensitiveUtil.desensitizedPhoneNumber(loginUserInfoVO.getPhone()));
        //判断账号类型
        int countSocialOrg=userDao.countSocialOrg(userId);
        if(countSocialOrg>0){
        int countSocialOrg = userDao.countSocialOrg(userId);
        if (countSocialOrg > 0) {
            loginUserInfoVO.setUserType(3);
        }
        else {
            if(loginUserInfoVO.getStreetId()!=null){
        } else {
            if (loginUserInfoVO.getStreetId() != null) {
                loginUserInfoVO.setUserType(1);
            }
            else {
            } else {
                loginUserInfoVO.setUserType(2);
            }
        }
        loginUserInfoVO.setBackstageType(1);
        String[] account={"dongqu","xiqu","yanbianxian","miyixian","renhequ","fantaixinqu"};
        if("zuzhibu".equals(sysUserDO.getAccount())){
        String[] account = {"dongqu", "xiqu", "yanbianxian", "miyixian", "renhequ", "fantaixinqu"};
        if ("zuzhibu".equals(sysUserDO.getAccount())) {
            loginUserInfoVO.setBackstageType(2);
        }
        if(ArrayUtil.contains(account,sysUserDO.getAccount())){
        if (ArrayUtil.contains(account, sysUserDO.getAccount())) {
            loginUserInfoVO.setBackstageType(3);
        }
        if(sysUserDO.getBindingCheckUnitId()!=null){
        if (sysUserDO.getBindingCheckUnitId() != null) {
            loginUserInfoVO.setBackstageType(4);
        }
        return R.ok(loginUserInfoVO);
@@ -768,8 +705,7 @@
    /**
     * 设置用户标签
     *
     * @param loginUserInfoVO
     *            标签信息
     * @param loginUserInfoVO 标签信息
     * @return 设置结果
     */
    @Override
@@ -789,8 +725,7 @@
    /**
     * 修改用户志愿者状态
     *
     * @param phone
     *            志愿者手机号
     * @param phone 志愿者手机号
     * @param type
     */
    @Override
@@ -809,7 +744,7 @@
                stringRedisTemplate.delete(userKey);
            } else {
                List<SysUserDO> userDOList =
                    userDao.selectList(new LambdaQueryWrapper<SysUserDO>().eq(SysUserDO::getPhone, phone));
                        userDao.selectList(new LambdaQueryWrapper<SysUserDO>().eq(SysUserDO::getPhone, phone));
                if (userDOList != null && userDOList.size() > 0) {
                    userDOList.forEach(usrDo -> {
                        Long userId = usrDo.getUserId();
@@ -827,8 +762,7 @@
    /**
     * 修改用户志愿者状态
     *
     * @param userId
     *            志愿者用户ID
     * @param userId 志愿者用户ID
     * @param type
     */
    @Override
@@ -860,8 +794,7 @@
    /**
     * 用户绑定社区、小区
     *
     * @param loginUserInfoVO
     *            社区小区数据
     * @param loginUserInfoVO 社区小区数据
     * @return 绑定结果
     */
    @Override
@@ -884,8 +817,7 @@
    /**
     * 用户实名认证
     *
     * @param loginUserInfoVO
     *            认证数据
     * @param loginUserInfoVO 认证数据
     * @return 认证结果
     */
    @Override
@@ -918,7 +850,7 @@
        }
        sysUserDO.setFaceState(null);
        SysUserDO sysUserDO1 =
            userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getIdCard, idCard).eq(SysUserDO::getCommunityId,loginUserInfoVO.getCommunityId()));
                userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getIdCard, idCard).eq(SysUserDO::getCommunityId, loginUserInfoVO.getCommunityId()));
        if (!ObjectUtils.isEmpty(sysUserDO1)) {
            return R.fail("身份证已经存在");
        }
@@ -942,10 +874,10 @@
                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));
                    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());
                            com.panzhihua.common.utlis.DateUtils.getCurrentDateStr(), "认证成功", sysTemplateConfig.getTemplateId());
                } catch (Exception e) {
                    log.error("推送用户订阅消息失败,失败原因:" + e.getMessage());
                }
@@ -958,8 +890,7 @@
    /**
     * 修改用户手机号
     *
     * @param userPhoneVO
     *            手机号信息
     * @param userPhoneVO 手机号信息
     * @return 修改结果
     */
    @Override
@@ -1003,8 +934,7 @@
    /**
     * 修改用户信息
     *
     * @param loginUserInfoVO
     *            修改内容
     * @param loginUserInfoVO 修改内容
     * @return 修改结果
     */
    @Override
@@ -1057,15 +987,14 @@
    /**
     * 家庭成员列表
     *
     * @param userId
     *            登录用户
     * @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);
                .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 -> {
@@ -1080,8 +1009,7 @@
    /**
     * 新增家庭成员
     *
     * @param comMngFamilyInfoVO
     *            家庭成员基本信息
     * @param comMngFamilyInfoVO 家庭成员基本信息
     * @return 增加结果
     */
    @Override
@@ -1089,8 +1017,8 @@
        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()));
                .lambda().eq(ComMngFamilyInfoDO::getIdCard, comMngFamilyInfoVO.getIdCard())
                .eq(ComMngFamilyInfoDO::getUserId, comMngFamilyInfoVO.getUserId()));
        if (!ObjectUtils.isEmpty(comMngFamilyInfoDO1)) {
            return R.fail("家庭成员已经存在");
        }
@@ -1105,8 +1033,7 @@
    /**
     * 编辑家庭成员
     *
     * @param comMngFamilyInfoVO
     *            家庭成员信息
     * @param comMngFamilyInfoVO 家庭成员信息
     * @return 编辑结果
     */
    @Override
@@ -1124,8 +1051,7 @@
    /**
     * 新增运营、社区后台账户
     *
     * @param administratorsUserVO
     *            账户信息
     * @param administratorsUserVO 账户信息
     * @return 新增结果
     */
    @Override
@@ -1166,7 +1092,7 @@
            int insert = roleDAO.insert(sysRoleDO);
            if (insert > 0) {
                SysRoleDO sysRoleDO1 = roleDAO.selectOne(
                    new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, sysRoleDO.getRoleKey()));
                        new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, sysRoleDO.getRoleKey()));
                roleId = sysRoleDO1.getRoleId();
                // 新角色设置所有权限
                MenuRoleVO menuRoleVO = new MenuRoleVO();
@@ -1176,7 +1102,7 @@
                this.putMenuRole(menuRoleVO);
            }
        }
        if(roleId.intValue()==777777777){
        if (roleId.intValue() == 777777777) {
            SysRoleDO sysRoleDO = new SysRoleDO();
            sysRoleDO.setRoleName("超级管理员");
            sysRoleDO.setRoleKey(Constants.STREET_ROLE_KEY + administratorsUserVO.getStreetId());
@@ -1189,26 +1115,23 @@
                roleId = sysRoleDO1.getRoleId();
                // 新街道管理员角色设置固定三社权限
                MenuRoleVO menuRoleVO = new MenuRoleVO();
                List<Long> menu=new ArrayList<>();
                if(administratorsUserVO.getSocialType()==1){
                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){
                } 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){
                } else if (administratorsUserVO.getSocialType() == 3) {
                    menu.add(233L);
                    menu.add(237L);
                }
                else {
                } else {
                    menuRoleVO.setIsAll(1);
                }
                menuRoleVO.setMenuIds(menu);
@@ -1234,15 +1157,15 @@
                throw new ServiceException("手机号已经存在");
            } else if (e.getMessage().contains("union_account_type")) {
                throw new ServiceException("账户已经存在");
            }else if(e.getMessage().contains("23000")){
            } 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()));
                    .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);
@@ -1259,26 +1182,24 @@
    public R addUserBackstageProperty(AdministratorsUserVO administratorsUserVO) {
        SysUserDO sysUserDO = new SysUserDO();
        Long roleId = administratorsUserVO.getRoleId();
        if(roleId.intValue()==777777777){
        if (roleId.intValue() == 777777777) {
            SysRoleDO sysRoleDO = new SysRoleDO();
            sysRoleDO.setRoleName("三社超级管理员");
            List<Long> menu=new ArrayList<>();
            if(administratorsUserVO.getSocialType()==1){
            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){
            } 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){
            } else if (administratorsUserVO.getSocialType() == 3) {
                sysRoleDO.setRoleKey("social_org_member" + administratorsUserVO.getStreetId());
                menu.add(300L);
                menu.add(303L);
@@ -1288,10 +1209,10 @@
            sysRoleDO.setCreateBy(administratorsUserVO.getUserId());
            SysRoleDO sysRoleDO1 = roleDAO.selectOne(
                    new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, sysRoleDO.getRoleKey()));
            if(sysRoleDO1!=null){
                sysRoleDO=sysRoleDO1;
            if (sysRoleDO1 != null) {
                sysRoleDO = sysRoleDO1;
                roleId = sysRoleDO.getRoleId();
            }else{
            } else {
                roleDAO.insert(sysRoleDO);
                // 新街道管理员角色设置固定三社权限
                MenuRoleVO menuRoleVO = new MenuRoleVO();
@@ -1317,7 +1238,7 @@
                throw new ServiceException("手机号已经存在");
            } else if (e.getMessage().contains("union_account_type")) {
                throw new ServiceException("账户已经存在");
            }else if(e.getMessage().contains("23000")){
            } else if (e.getMessage().contains("23000")) {
                throw new ServiceException("手机号已存在");
            }
@@ -1341,8 +1262,7 @@
    /**
     * 设置角色的权限
     *
     * @param menuRoleVO
     *            用户设置的权限id
     * @param menuRoleVO 用户设置的权限id
     * @return 设置结果
     */
    @Transactional(rollbackFor = Exception.class)
@@ -1386,7 +1306,7 @@
        // 获取所有权限id
        List<SysMenuDO> menuDOList = sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda()
            .eq(SysMenuDO::getCommunityId, 2L).eq(SysMenuDO::getVisible,0).orderByAsc(SysMenuDO::getOrderNum));
                .eq(SysMenuDO::getCommunityId, 2L).eq(SysMenuDO::getVisible, 0).orderByAsc(SysMenuDO::getOrderNum));
        if (!menuDOList.isEmpty()) {
            menuIds = menuDOList.stream().map(sysMenuDO -> sysMenuDO.getMenuId()).collect(Collectors.toList());
@@ -1396,10 +1316,9 @@
                        .anyMatch(sysRoleMenuDO -> sysRoleMenuDO.getMenuId().equals(menuId))).collect(Collectors.toList());
            }
            if (!menuIds.isEmpty()) {
                if(menuRoleVO.getMenuIds()==null){
                if (menuRoleVO.getMenuIds() == null) {
                    sysRoleMenuDAO.batchInsertWithRoleId(menuIds, roleId);
                }
                else {
                } else {
                    sysRoleMenuDAO.batchInsertWithRoleId(menuRoleVO.getMenuIds(), roleId);
                }
            }
@@ -1420,8 +1339,7 @@
    /**
     * 编辑运营、社区后台账户
     *
     * @param administratorsUserVO
     *            编辑账户内容
     * @param administratorsUserVO 编辑账户内容
     * @return 编辑结果
     */
    @Override
@@ -1455,7 +1373,7 @@
            SysUserRoleDO sysUserRoleDO = new SysUserRoleDO();
            sysUserRoleDO.setRoleId(roleDO.getRoleId());
            int update1 = sysUserRoleDAO.update(sysUserRoleDO, new UpdateWrapper<SysUserRoleDO>().lambda()
                .eq(SysUserRoleDO::getUserId, administratorsUserVO.getUserId()));
                    .eq(SysUserRoleDO::getUserId, administratorsUserVO.getUserId()));
            if (update1 > 0) {
                return R.ok();
            } else {
@@ -1469,8 +1387,7 @@
    /**
     * 删除后台用户
     *
     * @param administratorsUserVO
     *            用户主键
     * @param administratorsUserVO 用户主键
     * @return 删除结果
     */
    @Override
@@ -1482,7 +1399,7 @@
        }
        Long communityId = sysUserDO.getCommunityId();
        Long communityId1 = administratorsUserVO.getCommunityId();
        if (communityId1!=null&&communityId1.intValue() != communityId.intValue()) {
        if (communityId1 != null && communityId1.intValue() != communityId.intValue()) {
            return R.fail("用户不属于当前平台");
        }
        // 删除用户
@@ -1490,7 +1407,7 @@
        // 删除用户角色关系
        if (delete > 0) {
            int delete1 =
                sysUserRoleDAO.delete(new QueryWrapper<SysUserRoleDO>().lambda().eq(SysUserRoleDO::getUserId, userId));
                    sysUserRoleDAO.delete(new QueryWrapper<SysUserRoleDO>().lambda().eq(SysUserRoleDO::getUserId, userId));
            if (delete1 == 0) {
                return R.fail("用户没有角色关系");
            }
@@ -1501,8 +1418,7 @@
    /**
     * 分页查询后台用户
     *
     * @param administratorsUserVO
     *            查询参数
     * @param administratorsUserVO 查询参数
     * @return 后台用户
     */
    @Override
@@ -1525,16 +1441,15 @@
    /**
     * 保存操作日志
     *
     * @param operlog
     *            日志内容
     * @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){
        final Boolean flag = (operlog.getTitle().equals(UPDATEACIDCHECKRECORD) || operlog.getTitle().equals(UPDATEACIDMEMBER)
                || operlog.getTitle().equals(UPDATEACIDRECORD));
        if (flag) {
            //保存数据
            try {
                operlog.setBeforeUpdateData(saveBeforeUpdateData(operlog));
@@ -1554,8 +1469,7 @@
    /**
     * 分页展示操作日志
     *
     * @param sysOperLogVO
     *            分页参数
     * @param sysOperLogVO 分页参数
     * @return 分页集合
     */
    @Override
@@ -1583,7 +1497,7 @@
    @Override
    public R listAgreement(Long communityId) {
        List<SysUserAgreementDO> sysUserAgreementDOS = sysUserAgreementDAO.selectList(
            new LambdaQueryWrapper<SysUserAgreementDO>().eq(SysUserAgreementDO::getCommunityId, communityId));
                new LambdaQueryWrapper<SysUserAgreementDO>().eq(SysUserAgreementDO::getCommunityId, communityId));
        if (ObjectUtils.isEmpty(sysUserAgreementDOS)) {
            return R.fail();
        }
@@ -1599,8 +1513,7 @@
    /**
     * 编辑用户协议
     *
     * @param sysUserAgreementVO
     *            编辑内容
     * @param sysUserAgreementVO 编辑内容
     * @return 编辑结果
     */
    @Override
@@ -1617,14 +1530,13 @@
    /**
     * 用户标签
     *
     * @param communityId
     *            社区id
     * @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));
                .lambda().eq(ComMngUserTagDO::getSysFlag, 1).or().eq(ComMngUserTagDO::getCommunityId, communityId));
        if (ObjectUtils.isEmpty(comMngUserTagDOS)) {
            return R.fail();
        }
@@ -1640,8 +1552,7 @@
    /**
     * 新增删除用户标签
     *
     * @param systemmanagementConfigVO
     *            操作内容
     * @param systemmanagementConfigVO 操作内容
     * @return 操作结果
     */
    @Override
@@ -1650,7 +1561,7 @@
        Long communityId = systemmanagementConfigVO.getCommunityId();
        List<ComMngUserTagVO> comMngUserTagVOList = systemmanagementConfigVO.getComMngUserTagVOList();
        if (!ObjectUtils.isEmpty(comMngUserTagVOList)) {
            comMngUserTagDAO.delete(new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getCommunityId,communityId));
            comMngUserTagDAO.delete(new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getCommunityId, communityId));
            comMngUserTagVOList.forEach(comMngUserTagVO -> {
                ComMngUserTagDO comMngUserTagDO = new ComMngUserTagDO();
                comMngUserTagDO.setCommunityId(communityId);
@@ -1667,8 +1578,7 @@
    /**
     * 分页查询小程序用户
     *
     * @param pageUserAppletsBackstageDTO
     *            查询参数
     * @param pageUserAppletsBackstageDTO 查询参数
     * @return 分页集合
     */
    @Override
@@ -1685,8 +1595,7 @@
    /**
     * 编辑用户状态
     *
     * @param pageUserAppletsBackstageDTO
     *            启用或者禁用 1 启用 2 禁用
     * @param pageUserAppletsBackstageDTO 启用或者禁用 1 启用 2 禁用
     * @return 编辑结果
     */
    @Override
@@ -1706,8 +1615,7 @@
    /**
     * 调试接口--清除昵称、社区、小区
     *
     * @param userId
     *            登录用户id
     * @param userId 登录用户id
     * @return 清除结果
     */
    @Override
@@ -1722,22 +1630,20 @@
    /**
     * 用户协议和隐私政策
     *
     * @param type
     *            所属app 1居民端app 2网格员端app 3商家端app
     * @param type 所属app 1居民端app 2网格员端app 3商家端app
     * @return 协议内容
     */
    @Override
    public R userAgreement(int type,String appId) {
    public R userAgreement(int type, String appId) {
        SysUserAgreementDO sysUserAgreementDO = sysUserAgreementDAO
            .selectOne(new QueryWrapper<SysUserAgreementDO>().lambda().eq(SysUserAgreementDO::getType, type).eq(SysUserAgreementDO::getAppId,appId));
                .selectOne(new QueryWrapper<SysUserAgreementDO>().lambda().eq(SysUserAgreementDO::getType, type).eq(SysUserAgreementDO::getAppId, appId));
        return R.ok(sysUserAgreementDO);
    }
    /**
     * 意见反馈
     *
     * @param sysUserFeedbackDTO
     *            反馈内容
     * @param sysUserFeedbackDTO 反馈内容
     * @return 反馈结果
     */
    @Override
@@ -1755,8 +1661,7 @@
    /**
     * 分页通知列表
     *
     * @param pageDTO
     *            分页参数
     * @param pageDTO 分页参数
     * @return 分页结果
     */
    @Override
@@ -1766,11 +1671,11 @@
        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));
                    .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));
                    .eq(SysUserNoticeDO::getUserId, userId).eq(SysUserNoticeDO::getStatus, 0));
        }
        Page page = new Page<>();
        Long pageNum = pageDTO.getPageNum();
@@ -1787,8 +1692,7 @@
    /**
     * 通知已读
     *
     * @param noticeReadDTO
     *            通知已读
     * @param noticeReadDTO 通知已读
     * @return 修改状态
     */
    @Override
@@ -1800,7 +1704,7 @@
        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));
                    .eq(SysUserNoticeDO::getUserId, userId).eq(SysUserNoticeDO::getStatus, 0));
        } else {
            sysUserNoticeDO.setId(noticeReadDTO.getId());
            sysUserNoticeDO.setStatus(1);
@@ -1815,8 +1719,7 @@
    /**
     * 分页查询用户意见反馈
     *
     * @param pageFeedBackDTO
     *            分页查询参数
     * @param pageFeedBackDTO 分页查询参数
     * @return 意见集合
     */
    @Override
@@ -1833,8 +1736,7 @@
    /**
     * 未读消息汇总
     *
     * @param userId
     *            登录用户信息
     * @param userId 登录用户信息
     * @return 未读汇总
     */
    @Override
@@ -1842,7 +1744,7 @@
        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));
                .lambda().eq(SysUserNoticeDO::getUserId, userId).orderByDesc(SysUserNoticeDO::getCreateAt));
        if (!ObjectUtils.isEmpty(sysUserNoticeDOS)) {
            List<Integer> typeList = new ArrayList<>(4);
            sysUserNoticeDOS.forEach(sysUserNoticeDO -> {
@@ -1862,8 +1764,7 @@
    /**
     * 反馈意见详情
     *
     * @param id
     *            反馈主键
     * @param id 反馈主键
     * @return 反馈详情
     */
    @Override
@@ -1925,8 +1826,7 @@
    /**
     * 社区管理后台数据看板
     *
     * @param communityId
     *            社区id
     * @param communityId 社区id
     * @return 看板用户数据
     */
    @Override
@@ -1953,8 +1853,7 @@
    /**
     * 新增用户通知
     *
     * @param sysUserNoticeVO
     *            通知内容
     * @param sysUserNoticeVO 通知内容
     * @return 新增结果
     */
    @Override
@@ -1971,14 +1870,13 @@
    /**
     * 修改用户的党员状态
     *
     * @param idCard
     *            身份证号
     * @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));
                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getIdCard, idCard).eq(SysUserDO::getType, 1));
        if (sysUserDO != null) {
            sysUserDO.setIsPartymember(1);
            int updated = userDao.updateById(sysUserDO);
@@ -1995,8 +1893,7 @@
    /**
     * 修改用户的党员状态
     *
     * @param phone
     *            身份证号
     * @param phone 身份证号
     * @return 修改结果
     */
    @Override
@@ -2019,14 +1916,13 @@
    /**
     * 修改用户的党员状态
     *
     * @param idCard
     *            身份证号
     * @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));
                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getIdCard, idCard).eq(SysUserDO::getType, 1));
        if (sysUserDO != null) {
            sysUserDO.setIsPartymember(0);
            int updated = userDao.updateById(sysUserDO);
@@ -2043,14 +1939,13 @@
    /**
     * 获取各种协议
     *
     * @param type
     *            1居民端app协议 2网格员端app协议 3商家端app协议 4隐私政策
     * @param type 1居民端app协议 2网格员端app协议 3商家端app协议 4隐私政策
     * @return 协议内容
     */
    @Override
    public R agreement(Integer type,String appId) {
    public R agreement(Integer type, String appId) {
        SysUserAgreementDO sysUserAgreementDO = sysUserAgreementDAO
            .selectOne(new QueryWrapper<SysUserAgreementDO>().lambda().eq(SysUserAgreementDO::getType, type).eq(SysUserAgreementDO::getAppId,appId));
                .selectOne(new QueryWrapper<SysUserAgreementDO>().lambda().eq(SysUserAgreementDO::getType, type).eq(SysUserAgreementDO::getAppId, appId));
        if (ObjectUtils.isEmpty(sysUserAgreementDO)) {
            return R.fail("协议不存在");
        }
@@ -2062,8 +1957,7 @@
    /**
     * 维护用户最后登录时间
     *
     * @param userId
     *            用户主键
     * @param userId 用户主键
     * @return 维护结果
     */
    @Override
@@ -2081,8 +1975,7 @@
    /**
     * 删除意见反馈
     *
     * @param id
     *            主键
     * @param id 主键
     * @return 删除结果
     */
    @Override
@@ -2097,8 +1990,7 @@
    /**
     * 校验小区是否存在
     *
     * @param areaName
     *            小区名字
     * @param areaName 小区名字
     * @return 校验结果
     */
    @Override
@@ -2119,8 +2011,7 @@
    /**
     * 社区人员详情包括导入人员
     *
     * @param userId
     *            人员id
     * @param userId 人员id
     * @return CommunityUserInfoVO
     */
    @Override
@@ -2156,7 +2047,7 @@
            }
            communityUserInfoVO.setIsVolunteer(sysUserDO.getIsVolunteer());
            List<ComMngFamilyInfoDO> comMngFamilyInfoDOS = comMngFamilyInfoDAO
                .selectList(new QueryWrapper<ComMngFamilyInfoDO>().lambda().eq(ComMngFamilyInfoDO::getUserId, userId));
                    .selectList(new QueryWrapper<ComMngFamilyInfoDO>().lambda().eq(ComMngFamilyInfoDO::getUserId, userId));
            if (!ObjectUtils.isEmpty(comMngFamilyInfoDOS)) {
                List<ComMngFamilyInfoVO> comMngFamilyInfoVOS = new ArrayList<>();
                comMngFamilyInfoDOS.forEach(comMngFamilyInfoDO -> {
@@ -2173,8 +2064,7 @@
    /**
     * 用户搜索了就下载搜索的用户否则下载所有用户
     *
     * @param exportUserDTO
     *            用户搜索内容
     * @param exportUserDTO 用户搜索内容
     * @return List<EexcelUserDTO> excel内容
     */
    @Override
@@ -2186,7 +2076,7 @@
    @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"));
                .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("账号或密码错误");
        }
@@ -2204,7 +2094,7 @@
    public R listTags() {
        List<String> list = new ArrayList<>();
        List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
            .selectList(null);
                .selectList(null);
        if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
            for (ComMngUserTagDO comMngUserTagDO : comMngUserTagDOS) {
                if (!list.contains(comMngUserTagDO.getTagName())) {
@@ -2233,8 +2123,7 @@
    /**
     * 新增SysUser
     *
     * @param storeVO
     *            请求参数
     * @param storeVO 请求参数
     * @return 新增结果
     */
    @Override
@@ -2293,14 +2182,13 @@
    /**
     * 修改SysUser用户信息
     *
     * @param storeVO
     *            请求参数
     * @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));
                .eq(SysUserDO::getPhone, storeVO.getStoreAccount()).eq(SysUserDO::getType, 5));
        if (sysUserDO1 == null) {
            return R.fail("未查询到后台管理用户!");
        }
@@ -2315,8 +2203,7 @@
    /**
     * 修改用户小程序首页活动提示
     *
     * @param userEditTipsDTO
     *            请求参数
     * @param userEditTipsDTO 请求参数
     * @return 修改结果
     */
    public R editUserTips(SysUserEditTipsDTO userEditTipsDTO) {
@@ -2360,8 +2247,7 @@
    /**
     * 修改app用户密码
     *
     * @param userInfoAppDTO
     *            请求参数
     * @param userInfoAppDTO 请求参数
     * @return 修改结果
     */
    @Override
@@ -2392,15 +2278,14 @@
    /**
     * 添加网格员
     *
     * @param eventGridMemberAddDTO
     *            请求参数
     * @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));
                new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, Constants.GRID_DEFAULT_ROLE_KEY));
        if (gridMemberDefaultRole == null) {
            // 添加默认网格员角色
            gridMemberDefaultRole = new SysRoleDO();
@@ -2424,7 +2309,7 @@
        // 参数校验
        SysUserDO oldUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 6)
            .eq(SysUserDO::getNickName, eventGridMemberAddDTO.getNickName()));
                .eq(SysUserDO::getNickName, eventGridMemberAddDTO.getNickName()));
        if (oldUserDO != null) {
            return R.fail("昵称已使用");
        }
@@ -2451,8 +2336,8 @@
            // 关联市平台网格员
            if (eventGridMemberAddDTO.getLcMemberId() != null) {
                LcCompareCodeMemberDO compareCodeMemberDO =
                    lcCompareMemberCodeMapper.selectOne(new QueryWrapper<LcCompareCodeMemberDO>().lambda()
                        .eq(LcCompareCodeMemberDO::getLcGridMemberId, eventGridMemberAddDTO.getLcMemberId()));
                        lcCompareMemberCodeMapper.selectOne(new QueryWrapper<LcCompareCodeMemberDO>().lambda()
                                .eq(LcCompareCodeMemberDO::getLcGridMemberId, eventGridMemberAddDTO.getLcMemberId()));
                if (compareCodeMemberDO != null) {
                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
@@ -2509,14 +2394,13 @@
    /**
     * 网格员管理
     *
     * @param memberRelationDTO
     *            请求参数
     * @param memberRelationDTO 请求参数
     * @return 网格员列表
     */
    @Override
    public R getGridMemberList(PageEventGridMemberRelationDTO memberRelationDTO) {
        IPage<GridMemberVO> gridMemberPage = userDao.getGridMemberList(
            new Page(memberRelationDTO.getPageNum(), memberRelationDTO.getPageSize()), memberRelationDTO);
                new Page(memberRelationDTO.getPageNum(), memberRelationDTO.getPageSize()), memberRelationDTO);
        if (!gridMemberPage.getRecords().isEmpty()) {
            gridMemberPage.getRecords().forEach(gridMember -> {
                // 查询网格员关联市平台网格员id
@@ -2529,7 +2413,7 @@
                // 查询网格员关联楼栋信息
                List<GridMemberBuildingVO> memberBuildingList =
                    eventGridMemberBuildingRelationMapper.getGridMemberBuildingRelation(gridMember.getUserId());
                        eventGridMemberBuildingRelationMapper.getGridMemberBuildingRelation(gridMember.getUserId());
                if (!memberBuildingList.isEmpty()) {
                    memberBuildingList.forEach(memberBuilding -> {
                        if (!memberBuilding.getBuildingName().contains("栋")) {
@@ -2546,8 +2430,7 @@
    /**
     * 修改网格员信息
     *
     * @param gridMemberDTO
     *            请求参数
     * @param gridMemberDTO 请求参数
     * @return 修改结果
     */
    @Override
@@ -2565,7 +2448,7 @@
        // 参数校验
        SysUserDO oldUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 6)
            .eq(SysUserDO::getNickName, gridMemberDTO.getNickName()));
                .eq(SysUserDO::getNickName, gridMemberDTO.getNickName()));
        if (oldUserDO != null && !oldUserDO.getUserId().equals(gridMemberDTO.getGridMemberId())) {
            return R.fail("昵称已使用");
        }
@@ -2582,8 +2465,8 @@
            if (gridMemberDTO.getLcMemberId() != null) {
                // 关联现有的网格员信息
                LcCompareCodeMemberDO compareCodeMemberDO =
                    lcCompareMemberCodeMapper.selectOne(new QueryWrapper<LcCompareCodeMemberDO>().lambda()
                        .eq(LcCompareCodeMemberDO::getLcGridMemberId, gridMemberDTO.getLcMemberId()));
                        lcCompareMemberCodeMapper.selectOne(new QueryWrapper<LcCompareCodeMemberDO>().lambda()
                                .eq(LcCompareCodeMemberDO::getLcGridMemberId, gridMemberDTO.getLcMemberId()));
                if (compareCodeMemberDO != null) {
                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
@@ -2642,8 +2525,7 @@
    /**
     * 重置网格员密码
     *
     * @param gridMemberDTO
     *            请求参数
     * @param gridMemberDTO 请求参数
     * @return 重置结果
     */
    @Override
@@ -2660,8 +2542,7 @@
    /**
     * 批量删除网格员
     *
     * @param Ids
     *            网格员id集合
     * @param Ids 网格员id集合
     * @return 删除结果
     */
    @Override
@@ -2699,16 +2580,15 @@
    /**
     * 查询社区的收益说明
     *
     * @param communityId
     *            社区id
     * @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));
                sysUserAgreementDAO.selectList(new LambdaQueryWrapper<SysUserAgreementDO>()
                        .eq(SysUserAgreementDO::getCommunityId, communityId).eq(SysUserAgreementDO::getType, 5));
        if (sysUserAgreementDOS.isEmpty()) {
            SysUserAgreementDO agreementDO = new SysUserAgreementDO();
            agreementDO.setCommunityId(communityId);
@@ -2746,8 +2626,7 @@
    /**
     * 根据用户id查询用户openid
     *
     * @param userId
     *            用户id
     * @param userId 用户id
     * @return openid
     */
    @Override
@@ -2762,8 +2641,7 @@
    /**
     * 查询社区后台工作人员列表
     *
     * @param communityId
     *            社区id
     * @param communityId 社区id
     * @return 社区后台工作人员列表
     */
    @Override
@@ -2773,6 +2651,7 @@
    /**
     * 检查当前用户是否是社区工作人员
     *
     * @param phone
     * @param communityId
     * @return
@@ -2800,9 +2679,9 @@
    }
    @Override
    public R resetPasswordPatch(Long[] userId,String password) {
        if(userId!=null){
            for(Long user:userId){
    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);
@@ -2815,6 +2694,7 @@
    /**
     * 便民服务新增商家账号
     *
     * @param convenientMerchantDTO
     * @return 商家用户id
     */
@@ -2849,7 +2729,8 @@
    /**
     * 修改便民服务商家绑定账号
     * @param userId 用户id
     *
     * @param userId  用户id
     * @param account 修改账户
     * @return 修改结果
     */
@@ -2898,14 +2779,15 @@
    /**
     * 根据openid维护社区团队里是否注册
     * @param openid    用户微信唯一标识
     *
     * @param openid 用户微信唯一标识
     */
    @Override
    public void judgeCommunityTeam(String openid){
    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){
        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());
            }
        }
@@ -2917,7 +2799,7 @@
     * @return 运营后台数据看板升级版
     */
    @Override
    public R dataKanBans(DataKanBansDto dataKanBansDto){
    public R dataKanBans(DataKanBansDto dataKanBansDto) {
        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(dataKanBansDto.getAppId());
        List<String> communityUserX = new ArrayList<>();
        List<Integer> communityUserY = new ArrayList<>();
@@ -2935,9 +2817,9 @@
            page.setCurrent(1L);
            page.setSize(20L);
        }
        if(dataKanBansDto.getType() != null && dataKanBansDto.getType().equals(DataKanBansDto.type.by)){
        if (dataKanBansDto.getType() != null && dataKanBansDto.getType().equals(DataKanBansDto.type.by)) {
            dataKanbanDTOS = userDao.selectCommunityUserOrderMonth(page, dataKanBansDto.getAppId()).getRecords();
        }else{
        } else {
            dataKanbanDTOS = userDao.selectCommunityUserOrder(page, dataKanBansDto.getAppId()).getRecords();
        }
        if (!ObjectUtils.isEmpty(dataKanbanDTOS)) {
@@ -2951,7 +2833,7 @@
        List<Date> serverndays = com.panzhihua.common.utlis.DateUtils.getOldDays();
        serverndays.forEach(date -> {
            // 查询社区活动数量
            DataKanbanDTO dataKanbanDTO = userDao.selectCommunityAddUserOrder(dataKanBansDto.getAppId(),date);
            DataKanbanDTO dataKanbanDTO = userDao.selectCommunityAddUserOrder(dataKanBansDto.getAppId(), date);
            communityActiveUserX.add(DateFormatUtils.format(date, "MM-dd"));
            communityActiveUserY.add(dataKanbanDTO.getNum());
            communityActiveUserZ.add(dataKanbanDTO.getDayNum());
@@ -2966,10 +2848,11 @@
    /**
     * 运营后台-用户数据统计汇总
     * @return  用户数据统计汇总
     *
     * @return 用户数据统计汇总
     */
    @Override
    public R communityStatistics(String areaCode){
    public R communityStatistics(String areaCode) {
        //返回结果数据
        IndexUserStatisticsVo userStatisticsVo = new IndexUserStatisticsVo();
        //查询所有街道
@@ -2983,12 +2866,13 @@
    }
    @Override
    public R communityStatisticsExport(String areaCode){
    public R communityStatisticsExport(String areaCode) {
        return R.ok(userDao.getUserCommunityExcelExport(areaCode));
    }
    /**
     * 通过UnionId获取用户信息
     *
     * @param unionId
     * @return
     */
@@ -3005,14 +2889,15 @@
    @Override
    public R updateStreetId(AdministratorsUserVO administratorsUserVO) {
        SysUserDO sysUserDO=new SysUserDO();
        BeanUtils.copyProperties(administratorsUserVO,sysUserDO);
        SysUserDO sysUserDO = new SysUserDO();
        BeanUtils.copyProperties(administratorsUserVO, sysUserDO);
        userDao.updateById(sysUserDO);
        return R.ok();
    }
    /**
     * 删除用户信息缓存
     *
     * @param phone
     */
    @Override
@@ -3027,6 +2912,7 @@
    /**
     * 微商业街新增商家账号
     *
     * @param mcsMerchantDTO
     * @return 商家用户id
     */
@@ -3079,6 +2965,7 @@
    /**
     * 微商业街修改商家账号
     *
     * @param mcsMerchantDTO
     * @return
     */
@@ -3113,7 +3000,7 @@
                return R.fail("手机号已存在");
            } else if (e.getMessage().contains("union_account_type")) {
                return R.fail("账户已经存在");
            }else if(e.getMessage().contains("23000")){
            } else if (e.getMessage().contains("23000")) {
                return R.fail("手机号已存在");
            } else {
                return R.fail("账户或手机号已存在,请重新填写尝试");
@@ -3124,6 +3011,7 @@
    /**
     * 检查用户是否有效
     *
     * @param userId
     * @param type
     * @return
@@ -3139,6 +3027,7 @@
    /**
     * 根据手机号、用户类型查询用户
     *
     * @param phone
     * @param type
     * @return
@@ -3156,11 +3045,12 @@
    /**
     * 发送验证码
     * @param phone 手机号
     * @param clientIP 用户ip
     *
     * @param phone     手机号
     * @param clientIP  用户ip
     * @param prefixKey redis Key 前缀
     * @param limit 获取次数限制
     * @param timeout 超次数获取时间等待
     * @param limit     获取次数限制
     * @param timeout   超次数获取时间等待
     * @return
     */
    @Override
@@ -3170,7 +3060,7 @@
            String redisKey = String.join("::", prefixKey, clientIP);
            Long increment = opsForValue.increment(redisKey, 1);
            if (increment > limit) {
                return R.fail(String.format("请求过于频繁,请%d分钟后再次尝试!", timeout/60));
                return R.fail(String.format("请求过于频繁,请%d分钟后再次尝试!", timeout / 60));
            }
            stringRedisTemplate.expire(redisKey, timeout, TimeUnit.SECONDS);
        }
@@ -3191,6 +3081,7 @@
    /**
     * 根据openId获取微商业街用户
     *
     * @param openid
     * @return
     */
@@ -3207,6 +3098,7 @@
    /**
     * 商业街用户微信授权-绑定手机号
     *
     * @param bindUserPhoneDTO
     * @return
     */
@@ -3280,45 +3172,56 @@
    @Override
    public R uuLogin(UuLoginVO uuLoginVO) {
        uuLoginVO.setAppid("10000");
        String timeStamp=PayUtil.create_timestamp();
        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()+"e10adc3949ba59abbe56e057f20f883e"+timeStamp).toLowerCase(Locale.ROOT));
            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","10000");
        String resultJson=HttpClientUtil.get("https://api.uucsh.cn/member/wx/get-access?province="+uuLoginVO.getProvince()+"&city="+uuLoginVO.getCity()+"&area="+uuLoginVO.getArea()+"&appid=10000&timestamp="+uuLoginVO.getTimestamp()+"&sign="+uuLoginVO.getSign()+"&mobile="+uuLoginVO.getMobile()+"&couponId="+uuLoginVO.getCouponId(),headerMap,null);
        Map<String, String> headerMap = new HashMap<>();
        headerMap.put("appid", appId);
        String resultJson = HttpClientUtil.get("https://api.uucsh.cn/member/wx/get-access?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);
        JSONObject result = JSON.parseObject(resultJson);
        if(result.get("status").equals(1)){
        if (result.get("status").equals(1)) {
            return R.ok(result.get("data"));
        }
        return R.fail("信息错误");
    }
    @Override
    public R checkExport(String account, String password,String oldPassword) {
        if(new BCryptPasswordEncoder().matches(password, oldPassword)){
    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) {
    public R newIndexData(Integer type, Long streetId, Long areaCode, String appId) {
        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(appId);
        IndexDataAnalysisVO vo=new IndexDataAnalysisVO();
        if (ObjectUtils.isEmpty(type)){
        IndexDataAnalysisVO vo = new IndexDataAnalysisVO();
        if (ObjectUtils.isEmpty(type)) {
            //不传默认为所有区县
            type=ALLCOUNTY;
            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);
        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);
@@ -3389,128 +3292,128 @@
    }
    @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)){
    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 indexDataVO = userDao.dataKanBanStreet(streetId, areaCode, null);
            BeanUtils.copyProperties(indexDataVO, analysisVO);
        } else {
            //总量数据
            IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(appId);
            BeanUtils.copyProperties(indexDataKanbanVO,analysisVO );
            BeanUtils.copyProperties(indexDataKanbanVO, analysisVO);
        }
        String date="";
        if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(range)){
            if (range.equals(1)){
        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;
        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){
        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")){
                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()));
                        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.setName(typeToName(type, userProportion));
                    vo.setCount(userProportion.getUser());
                    userRateAnalysisVOList.add(vo);
                }
            }
        }
        if (ObjectUtils.isEmpty(range)){
        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();
            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.setCount(analysisVO.getAllUser() - countUser(userRateAnalysisVOList));
                vo.setRate(getRate(analysisVO.getAllUser(), vo.getCount()));
                userRateAnalysisVOList.add(vo);
            }
        }
        //计算其他用户占比
        UserRateVO userRate=new UserRateVO();
        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)){
    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 indexDataVO = userDao.dataKanBanStreet(streetId, areaCode, null);
            BeanUtils.copyProperties(indexDataVO, analysisVO);
        } else {
            //总量数据
            IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(appId);
            BeanUtils.copyProperties(indexDataKanbanVO,analysisVO );
            BeanUtils.copyProperties(indexDataKanbanVO, analysisVO);
        }
        String date="";
        if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(range)){
            if (range.equals(1)){
        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 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){
        if (null == rate) {
            realUserVO.setRealUserRate(0.0);
        }else{
        } 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")){
            if (!(type.equals(ALLCOUNTY))) {
                if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUser)) {
                    if (realUser.getCommunityId().equals("11")) {
                        continue;
                    }
                }
            }
            RealUserAnalysisVO vo=new RealUserAnalysisVO();
            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++) {
        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("请选择社区")){
                if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUserAnalysisVO)) {
                    if (StringUtils.isNotEmpty(realUserAnalysisVO.getName())) {
                        if (realUserAnalysisVO.getName().equals("请选择社区")) {
                            realUserList.remove(i);
                        }
                    }
                }
            }
        }else {
        } else {
            //只保留十条
            if (realUserList.size()>=11){
            if (realUserList.size() >= 11) {
                realUserList.remove(10);
            }
        }
@@ -3519,19 +3422,19 @@
    @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)){
        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");
        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);
            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());
        }
@@ -3542,31 +3445,35 @@
    }
    @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="";
    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();
                } 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;
                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;
                }
            }
        }
@@ -3574,64 +3481,69 @@
    }
    @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="";
    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.sendUuWash3(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"sNj6m-JBvW6rOokKGDX9X3-XH1AD0GY5_X0jA9JSLwc");
                switch (orderStatus) {
                    case 3:
                        status = "已分配车美";
                        WxUtil.sendUuWash3(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "sNj6m-JBvW6rOokKGDX9X3-XH1AD0GY5_X0jA9JSLwc");
                        break;
                    case 4 : status="车美已开始服务";
                        WxUtil.sendUuWash4(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"Eft5ksvsnOQANy2uNOGY43CC3pb33eDGA_lgCEoxuiw");
                    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,"iPS8yrsGDqy76hiP8bIbxkosveoX1xTFhdusSiGp-XM");
                    case 6:
                        status = "订单确认完成";
                        WxUtil.sendUuWash6(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "iPS8yrsGDqy76hiP8bIbxkosveoX1xTFhdusSiGp-XM");
                        break;
                    case 9 : status="订单已取消";
                        WxUtil.sendUuWash(sysUserDO.getOpenid(),accessToken,status,washName,washPhone,phone,"z_ysGXz9JWBc2rXuYZzVCXKJTyLf0w0WerrohuNoEng");
                    case 9:
                        status = "订单已取消";
                        WxUtil.sendUuWash(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "z_ysGXz9JWBc2rXuYZzVCXKJTyLf0w0WerrohuNoEng");
                        break;
                }
            }
        }
        return R.ok();
    }
    @Override
    public R getCommunityList(String name,Long id) {
    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"};
        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);
        Integer type = isVilliage(name);
        //是否为市级账号
        Boolean cityAccount = isCityAccount(name);
        if (cityAccount){
            List<Integer> areaList=areaCodeList();
            List<AreaVOS> areaVOList=new ArrayList<>();
        if (cityAccount) {
            List<Integer> areaList = areaCodeList();
            List<AreaVOS> areaVOList = new ArrayList<>();
            for (Integer code : areaList) {
                AreaVOS areaVO=new AreaVOS();
                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()){
                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){
                    if (type != 3) {
                        if (communityVOS == null || communityVOS.size() == 0) {
                            iterator.remove();
                        }
                    }
@@ -3640,20 +3552,20 @@
                areaVOList.add(areaVO);
            }
            return R.ok(areaVOList);
        }else{
        } else {
            Boolean areaAccount = isAreaAccount(name);
            if (areaAccount){
            if (areaAccount) {
                Integer areaCode = accountToCode(name);
                List<Integer> areaList=new ArrayList<>();
                List<Integer> areaList = new ArrayList<>();
                areaList.add(areaCode);
                List<AreaVOS> areaVOList=new ArrayList<>();
                List<AreaVOS> areaVOList = new ArrayList<>();
                for (Integer code : areaList) {
                    AreaVOS areaVO=new AreaVOS();
                    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()){
                    while (iterator.hasNext()) {
                        StreetVOS vo = iterator.next();
                        List<CommunityVO> communityVOS = userDao.selectCommunityByStreetId(vo.getId(), type);
                        vo.setChildList(communityVOS);
@@ -3662,10 +3574,10 @@
                    areaVOList.add(areaVO);
                }
                return R.ok(areaVOList);
            }else{
            } else {
                //非区县账号,只看街道下属社区
                if (ArrayUtil.contains(streetList, name)){
                    List<StreetVOS> list=new ArrayList<>();
                if (ArrayUtil.contains(streetList, name)) {
                    List<StreetVOS> list = new ArrayList<>();
                    //只看当前街道下属社区
                    StreetVOS streetVOS = userDao.selectStreetByName(name);
                    List<CommunityVO> communityVOS = userDao.selectCommunityByStreetName(name);
@@ -3681,9 +3593,9 @@
    }
    @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){
    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);
        }
@@ -3692,9 +3604,9 @@
    @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 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);
@@ -3708,7 +3620,7 @@
    @Override
    public R accept(Long userId) {
        SysUserDO sysUserDO=new SysUserDO();
        SysUserDO sysUserDO = new SysUserDO();
        sysUserDO.setUserId(userId);
        sysUserDO.setIsAccept(1);
        userDao.updateById(sysUserDO);
@@ -3718,11 +3630,11 @@
    @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){
        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();
        SysUserDO sysUserDO1 = new SysUserDO();
        sysUserDO1.setUserId(Snowflake.getId());
        sysUserDO1.setAccount(comPbCheckUserDTO.getAccount());
        sysUserDO1.setPassword(new BCryptPasswordEncoder().encode(comPbCheckUserDTO.getPassword()));
@@ -3730,9 +3642,9 @@
        sysUserDO1.setAppId("wx118de8a734d269f0");
        sysUserDO1.setCommunityId(0L);
        sysUserDO1.setBindingCheckUnitId(comPbCheckUserDTO.getCheckUnitId());
        int restlt=userDao.insert(sysUserDO1);
        if(restlt>0){
            SysUserRoleDO sysUserRoleDO=new SysUserRoleDO();
        int restlt = userDao.insert(sysUserDO1);
        if (restlt > 0) {
            SysUserRoleDO sysUserRoleDO = new SysUserRoleDO();
            sysUserRoleDO.setRoleId(123321L);
            sysUserRoleDO.setUserId(sysUserDO1.getUserId());
            sysUserRoleDAO.insert(sysUserRoleDO);
@@ -3743,10 +3655,10 @@
    @Override
    public R getAreaAndStreet() {
        List<Integer> areaCodeList=areaCodeList();
        List<AreaVO> areaVOList=new ArrayList<>();
        List<Integer> areaCodeList = areaCodeList();
        List<AreaVO> areaVOList = new ArrayList<>();
        for (Integer code : areaCodeList) {
            AreaVO vo=new AreaVO();
            AreaVO vo = new AreaVO();
            vo.setId(code);
            vo.setName(areaCodeToName(code.longValue()));
            vo.setStreetList(userDao.selectStreetsByAreaCode(code));
@@ -3780,12 +3692,12 @@
        List<Date> dates = new ArrayList<>();
        Date date = new Date();
        Long offset = DateUtil.between(new Date(), DateUtil.beginOfMonth(date), DateUnit.DAY);
        if (offset>=20){
        if (offset >= 20) {
            for (int i = 19; i >= 0; i--) {
                Date date1 = DateUtils.addDays(date, -i);
                dates.add(date1);
            }
        }else{
        } else {
            //距离月初不足20天
            for (int i = offset.intValue(); i >= 0; i--) {
                Date date1 = DateUtils.addDays(date, -i);
@@ -3798,11 +3710,11 @@
    /**
     * 计算占比
     * */
    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);
     */
    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();
            }
@@ -3812,14 +3724,14 @@
    /**
     * 计算街道实名用户总数
     * */
    private Integer getStreetRealUser(List<RealUser> list){
        Integer count=0;
        if (list.size()>0){
     */
    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();
                if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUser)) {
                    if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUser.getCount())) {
                        count += realUser.getCount();
                    }
                }
            }
@@ -3830,14 +3742,14 @@
    /**
     * 计算当前统计范围内的所有用户数
     * */
    public Integer countUser(List<UserRateAnalysisVO> list){
        Integer count=0;
        if (list.size()>0){
     */
    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();
                if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(proportion)) {
                    if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(proportion.getCount())) {
                        count += proportion.getCount();
                    }
                }
            }
@@ -3847,12 +3759,12 @@
    /**
     * 截取月,日
     * */
    public List<String> getMAndD(List<Date> list){
        List<String> dateList=new ArrayList<>();
        if (list.size()>0){
     */
    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" ));
                dateList.add(DateFormatUtils.format(date, "MM-dd"));
            }
        }
        return dateList;
@@ -3861,69 +3773,69 @@
    /**
     * areaCode转区县名
     * */
    private  String areaCodeToName(Long areaCode){
     */
    private String areaCodeToName(Long areaCode) {
        String code = areaCode.toString();
        String name="不正确的areaCode";
        switch (code){
            case "510423" :
                name= "西区";
        String name = "不正确的areaCode";
        switch (code) {
            case "510423":
                name = "西区";
                break;
            case "510402":
                name="东区";
                name = "东区";
                break;
            case "510411":
                name="仁和区";
                name = "仁和区";
                break;
            case "510421":
                name="米易县";
                name = "米易县";
                break;
            case "510422":
                name="盐边县";
                name = "盐边县";
                break;
            case "510424":
                name="钒钛新区";
                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();
     * 根据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();
     * 根据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<>();
     */
    private List<Integer> areaCodeList() {
        List<Integer> list = new ArrayList<>();
        list.add(510402);
        list.add(510423);
        list.add(510411);
@@ -3935,17 +3847,17 @@
    /**
     * 根据日志保存修改之前的信息
     * */
     */
    private String saveBeforeUpdateData(SysOperLogVO operlog) throws JsonProcessingException {
        if (operlog.getTitle().equals(UPDATEACIDCHECKRECORD)){
        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)){
        } 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)){
        } else if (operlog.getTitle().equals(UPDATEACIDMEMBER)) {
            ComActAcidMemberVO comActAcidMemberVO = objectMapper.readValue(operlog.getOperParam(), ComActAcidMemberVO.class);
            return JSONObject.toJSONString(userDao.selectComActAcidMember(comActAcidMemberVO.getId()));
        }
@@ -3954,13 +3866,13 @@
    /**
     * 是否需要区分村落/社区
     * */
    private Integer isVilliage(String name){
        if ("fangyipingtai".equals(name)){
     */
    private Integer isVilliage(String name) {
        if ("fangyipingtai".equals(name)) {
            return 3;
        }else if ("pandashujuzhongxin".equals(name)){
        } else if ("pandashujuzhongxin".equals(name)) {
            return 1;
        }else if ("pannongyenongcunju".equals(name)){
        } else if ("pannongyenongcunju".equals(name)) {
            return 2;
        }
        return 3;
@@ -3968,9 +3880,9 @@
    /**
     * 是否为市级账号
     * */
    private Boolean isCityAccount(String name){
        if(("fangyipingtai").equals(name) || ("pandashujuzhongxin").equals(name) || ("pannongyenongcunju").equals(name)){
     */
    private Boolean isCityAccount(String name) {
        if (("fangyipingtai").equals(name) || ("pandashujuzhongxin").equals(name) || ("pannongyenongcunju").equals(name)) {
            return true;
        }
        return false;
@@ -3978,16 +3890,16 @@
    /**
     * 是否为区级账号
     * */
    private Boolean isAreaAccount(String name){
        Boolean flag=false;
        switch (name){
     */
    private Boolean isAreaAccount(String name) {
        Boolean flag = false;
        switch (name) {
            case "dongqu":
            case "xiqu":
            case "renhequ":
            case "miyixian":
            case "yanbianxian":
                flag=true;
                flag = true;
                break;
        }
        return flag;
@@ -3995,27 +3907,27 @@
    /**
     * account转区areaCode
     * */
    private  Integer accountToCode(String code){
        String name="100000";
        switch (code){
            case "xiqu" :
                name= "510423";
     */
    private Integer accountToCode(String code) {
        String name = "100000";
        switch (code) {
            case "xiqu":
                name = "510423";
                break;
            case "dongqu":
                name="510402";
                name = "510402";
                break;
            case "renhequ":
                name="510411";
                name = "510411";
                break;
            case "miyixian":
                name="510421";
                name = "510421";
                break;
            case "yanbianxian":
                name="510422";
                name = "510422";
                break;
            case "fantaixinqu":
                name="510424";
                name = "510424";
                break;
        }
        return Integer.parseInt(name);