张天森
2022-10-26 a80e2804cac1ec32a24ef5cf2a834b5fe83fc1ed
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -1,55 +1,42 @@
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 cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.*;
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.dtos.user.*;
import com.panzhihua.common.model.vos.*;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.common.model.vos.community.ComAreaTownCommunityVO;
import com.panzhihua.common.model.vos.community.acid.ComActAcidCheckRecordVO;
import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO;
import com.panzhihua.common.model.vos.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.sanshuo.ComSanshuoExpertVO;
import com.panzhihua.common.model.vos.user.*;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.utlis.*;
import com.panzhihua.service_user.dao.*;
import com.panzhihua.service_user.entity.SysAppConfig;
import com.panzhihua.service_user.entity.SysTemplateConfig;
import com.panzhihua.service_user.model.dos.*;
import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
import com.panzhihua.service_user.model.dtos.UsersStatisticsDTO;
import com.panzhihua.service_user.service.EventGridMemberBuildingRelationService;
import com.panzhihua.service_user.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.beans.BeanUtils;
@@ -60,16 +47,68 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
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 com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.constants.Constants;
import com.panzhihua.common.constants.UserConstants;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.dtos.DataKanBansDto;
import com.panzhihua.common.model.dtos.PageDTO;
import com.panzhihua.common.model.dtos.community.ExportUserDTO;
import com.panzhihua.common.model.dtos.community.NoticeReadDTO;
import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
import com.panzhihua.common.model.dtos.community.convenient.DisableOrEnableConvenientMerchantDTO;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsMerchantDTO;
import com.panzhihua.common.model.dtos.grid.EventGridMemberAddDTO;
import com.panzhihua.common.model.dtos.grid.EventGridMemberEditAdminDTO;
import com.panzhihua.common.model.dtos.grid.EventGridMemberEditStatusDTO;
import com.panzhihua.common.model.dtos.grid.EventGridMemberPassResetDTO;
import com.panzhihua.common.model.dtos.grid.PageEventGridMemberRelationDTO;
import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
import com.panzhihua.common.model.dtos.user.PageFeedBackDTO;
import com.panzhihua.common.model.dtos.user.PageUserAppletsBackstageDTO;
import com.panzhihua.common.model.dtos.user.SysUserEditTipsDTO;
import com.panzhihua.common.model.dtos.user.SysUserFeedbackDTO;
import com.panzhihua.common.model.vos.AppletUserInfoVO;
import com.panzhihua.common.model.vos.EditUserInfoPassAppDTO;
import com.panzhihua.common.model.vos.IndexDataKanbanVO;
import com.panzhihua.common.model.vos.IndexDataVO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.SystemmanagementConfigVO;
import com.panzhihua.common.model.vos.community.ComActVO;
import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
import com.panzhihua.common.model.vos.community.IndexUserCommunityVo;
import com.panzhihua.common.model.vos.community.IndexUserStatisticsVo;
import com.panzhihua.common.model.vos.community.IndexUserStreetVo;
import com.panzhihua.common.model.vos.grid.GridMemberVO;
import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO;
import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO;
import com.panzhihua.common.model.vos.shop.ShopStoreVO;
import com.panzhihua.service_user.model.dos.ComActFourMember;
import com.panzhihua.service_user.model.dos.ComMngFamilyInfoDO;
import com.panzhihua.service_user.model.dos.ComMngUserTagDO;
import com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO;
import com.panzhihua.service_user.model.dos.LcCompareCodeMemberDO;
import com.panzhihua.service_user.model.dos.SysMenuDO;
import com.panzhihua.service_user.model.dos.SysOperLogDO;
import com.panzhihua.service_user.model.dos.SysRoleDO;
import com.panzhihua.service_user.model.dos.SysRoleMenuDO;
import com.panzhihua.service_user.model.dos.SysUserAgreementDO;
import com.panzhihua.service_user.model.dos.SysUserDO;
import com.panzhihua.service_user.model.dos.SysUserFeedbackDO;
import com.panzhihua.service_user.model.dos.SysUserNoticeDO;
import com.panzhihua.service_user.model.dos.SysUserRoleDO;
import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
import com.panzhihua.service_user.model.dtos.UsersStatisticsDTO;
import com.panzhihua.service_user.service.EventGridMemberBuildingRelationService;
import com.panzhihua.service_user.service.UserService;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import cn.hutool.core.util.IdcardUtil;
import lombok.extern.slf4j.Slf4j;
// import com.panzhihua.common.service.grid.GridService;
@@ -125,15 +164,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;
@@ -185,6 +224,10 @@
            sysUserDO1.setPassword(encode);
            sysUserDO1.setType(1);
            sysUserDO1.setAppId(appId);
            //设置默认头像地址
            sysUserDO1.setImageUrl("https://www.psciio.com//idcard/f15c91f940624ed59537ecced1059f18.jpg");
            //设置默认用户名
            sysUserDO1.setNickName("用户" + RandomUtil.randomString(8));
            num = userDao.insert(sysUserDO1);
        } else {
            String encode = new BCryptPasswordEncoder().encode(UserConstants.PASSWORD);
@@ -260,18 +303,25 @@
     * @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;
        Boolean isIndustryOrExpertAccount=(userDao.isIndustryCenterAccount(name)>0 || userDao.isExpertAccount(name)>0);
        if (1 == type) {
            sysUserDO = userDao.selectOne(
                    new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type).eq(SysUserDO::getOpenid, name));
        } else {
                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type).eq(SysUserDO::getOpenid, name));
        }else if(isIndustryOrExpertAccount) {
            //三说会堂行业分中心或专家后台账号登陆
            sysUserDO = userDao.selectOne(
                    new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, name).eq(SysUserDO::getAppId, appId));
        }
        else {
            LambdaQueryWrapper<SysUserDO> wrapper = new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type);
            if (type == 11) {
                //只允许通过account登录
                wrapper.and(sysUserDOLambdaQueryWrapper -> sysUserDOLambdaQueryWrapper.eq(SysUserDO::getAccount, name).eq(SysUserDO::getAppId, appId));
                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);
@@ -281,6 +331,9 @@
            return R.fail();
        }
        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
        if (nonNull(sysUserDO.getStreetId())){
            loginUserInfoVO.setStreetId(sysUserDO.getStreetId());
        }
        loginUserInfoVO.setUserId(sysUserDO.getUserId());
        loginUserInfoVO.setName(sysUserDO.getName());
        loginUserInfoVO.setPassword(sysUserDO.getPassword());
@@ -288,13 +341,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()));
@@ -310,6 +363,13 @@
            roleDOList.forEach(sysRoleDO -> {
                set.add(sysRoleDO.getRoleKey());
            });
        }
        //是否为人大代表
        if (StringUtils.isNotEmpty(sysUserDO.getPhone()) && StringUtils.isNotEmpty(sysUserDO.getName())){
            int i = userDao.isDpcMember(sysUserDO.getPhone(), sysUserDO.getName());
            if (i>0){
                loginUserInfoVO.setIsDpcMember(1);
            }
        }
        return R.ok(loginUserInfoVO);
    }
@@ -353,8 +413,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());
                }
@@ -369,8 +429,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);
            }
            //是否是社区物业人员
@@ -386,21 +446,24 @@
            //是否是防疫工作人员
            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);
            }
            //是否网格员
@@ -420,19 +483,71 @@
            } 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);
            }
        }
        loginUserInfoVO.setIsRealNamed(sysUserDO.getIdCard() != null);
        //是否社区或街道后台
        int countSocialOrg=userDao.countSocialOrg(sysUserDO.getUserId());
        if(countSocialOrg>0){
            loginUserInfoVO.setUserType(3);
        }
        if (nonNull(sysUserDO.getAccount())){
            if (isStreetAccount(sysUserDO.getAccount())){
                //街道账号
                loginUserInfoVO.setLevel(3);
            }
            if (sysUserDO.getAccount().equals("admin")){
                loginUserInfoVO.setLevel(1);
            }
        }
        if (loginUserInfoVO.getType().equals(3)){
            loginUserInfoVO.setLevel(4);
        }
        if (sysUserDO.getType().equals(11)){
            //专家
            loginUserInfoVO.setLevel(5);
        }else if (sysUserDO.getType().equals(12)){
            //行业分中心
            loginUserInfoVO.setLevel(2);
        }
        //是否为三说会堂专家
        ComSanshuoExpertVO expertVO=userDao.isExpert(loginUserInfoVO.getPhone());
        if (nonNull(expertVO)){
            loginUserInfoVO.setType(13);
        }
        //是否为人大代表
        if (StringUtils.isNotEmpty(phone) && StringUtils.isNotEmpty(sysUserDO.getName())){
            int i = userDao.isDpcMember(phone, sysUserDO.getName());
            if (i>0){
                loginUserInfoVO.setIsDpcMember(1);
            }
        }
        return R.ok(loginUserInfoVO);
    }
    /**
     * 是否为综治后台街道账号
     * */
    public Boolean isStreetAccount(String name){
        Boolean flag=false;
        String[] account={"glpz","qxpjd","tjdjd","dbdjd","yqjd","bcg","hmkjd","dhjd","jsgyy","dzhljd"};
        if (nonNull(name)){
            if (ArrayUtil.contains(account,name)){
                flag=true;
            }
        }
        return flag;
    }
    /**
     * 修改用户登录密码
     *
     * @param changePasswordVO 新密码
     * @param changePasswordVO
     *            新密码
     * @return 修改结果
     */
    @Override
@@ -464,8 +579,10 @@
    /**
     * 某社区后台人员查询
     *
     * @param param       名字
     * @param communityId 社区id
     * @param param
     *            名字
     * @param communityId
     *            社区id
     * @return 人员集合
     */
    @Override
@@ -492,8 +609,10 @@
    /**
     * 微心愿搜索社区团队人员列表
     *
     * @param param       请求参数
     * @param communityId 社区id
     * @param param
     *            请求参数
     * @param communityId
     *            社区id
     * @return 社区团队人员列表
     */
    @Override
@@ -504,7 +623,8 @@
    /**
     * 分页查询人脸识别
     *
     * @param loginUserInfoVO 查询参数
     * @param loginUserInfoVO
     *            查询参数
     * @return 分页集合
     */
    @Override
@@ -691,7 +811,15 @@
                loginUserInfoVO.setUserType(1);
            } else {
                loginUserInfoVO.setUserType(2);
                loginUserInfoVO.setLevel(4);
            }
        }
        if (sysUserDO.getType().equals(11)){
            loginUserInfoVO.setLevel(5);
        }else if (sysUserDO.getType().equals(12)){
            loginUserInfoVO.setLevel(2);
        }else if (isNull(loginUserInfoVO.getLevel())){
            loginUserInfoVO.setLevel(1);
        }
        loginUserInfoVO.setBackstageType(1);
        String[] account = {"dongqu", "xiqu", "yanbianxian", "miyixian", "renhequ", "fantaixinqu"};
@@ -1490,6 +1618,11 @@
        }
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        //因操作日志数据量太大,如果没有时间查询条件,默认查询最近十五天的数据
        if (StrUtil.isEmpty(sysOperLogVO.getStartTime()) && StrUtil.isEmpty(sysOperLogVO.getEndTime())){
            sysOperLogVO.setStartTime(com.panzhihua.common.utlis.DateUtils.getBeforeDay(15));
            sysOperLogVO.setEndTime(com.panzhihua.common.utlis.DateUtils.getCurrentDateymd());
        }
        IPage<SysOperLogVO> iPage = sysOperLogDAO.pageOperLog(page, sysOperLogVO);
        return R.ok(iPage);
    }
@@ -2164,8 +2297,13 @@
        sysUserDO.setPhone(storeVO.getPhone());
        sysUserDO.setName(storeVO.getContacts());
        sysUserDO.setPassword(encode);
        sysUserDO.setAppId("wx0cef797390444b75");
        try {
            insert = userDao.insert(sysUserDO);
            SysUserRoleDO sysUserRoleDO = new SysUserRoleDO();
            sysUserRoleDO.setUserId(sysUserDO.getUserId());
            sysUserRoleDO.setRoleId(sysRoleDO.getRoleId());
            sysUserRoleDAO.insert(sysUserRoleDO);
            // 把SysUserId赋值给店铺
            if (sysUserDO.getUserId() != null) {
                userDao.updateStoreByPhone(storeVO.getPhone(), sysUserDO.getUserId());
@@ -3473,8 +3611,8 @@
        for (Date date : activeDate) {
            String dateStr = DateUtil.format(date, "yyyy-MM-dd");
            activeY.add(activeMap.containsKey(dateStr) ? activeMap.get("activeUser").toString() : "0");
            adY.add(dailyAddMap.containsKey(dateStr) ? dailyAddMap.get("addUser").toString() : "0");
            activeY.add(activeMap.containsKey(dateStr) ? activeMap.get(dateStr) : "0");
            adY.add(dailyAddMap.containsKey(dateStr) ? dailyAddMap.get(dateStr) : "0");
        }
        vo.setUserX(getMAndD(activeDate));
@@ -3691,6 +3829,92 @@
        return R.ok();
    }
    /**
     * 三说会堂新增业务中心或专家账号
     * */
    @Override
    public R addExpertOrIndustryCenter(AdministratorsUserVO administratorsUserVO) {
        SysUserDO sysUserDO=new SysUserDO();
        //是否存在相同账号
        SysUserDO userDO = userDao.selectOne(new QueryWrapper<SysUserDO>().eq("account", administratorsUserVO.getAccount()));
        if (isNull(userDO)){
            sysUserDO.setAppId("wx0cef797390444b75");
            sysUserDO.setCreateAt(new Date());
            sysUserDO.setUserId(administratorsUserVO.getUserId());
            sysUserDO.setAccount(administratorsUserVO.getAccount());
            sysUserDO.setPassword(new BCryptPasswordEncoder().encode(administratorsUserVO.getPassword()));
            sysUserDO.setName(administratorsUserVO.getName());
            if (nonNull(administratorsUserVO.getImageUrl())){
                sysUserDO.setImageUrl(administratorsUserVO.getImageUrl());
            }
            if (nonNull(administratorsUserVO.getType())){
                sysUserDO.setType(administratorsUserVO.getType());
            }
            if (nonNull(administratorsUserVO.getPhone())){
                sysUserDO.setPhone(administratorsUserVO.getPhone());
            }
            userDao.insert(sysUserDO);
            //分配权限
            SysUserRoleDO sysUserRole=new SysUserRoleDO();
            sysUserRole.setUserId(sysUserDO.getUserId());
            if (sysUserDO.getType().equals(11)){
                sysUserRole.setRoleId(Long.parseLong(UserConstants.SANSHUO_EXPERT_ROLE));
                //将专家小程序账号设置为专家权限
                SysUserDO sysUserDO1 = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 1).eq(SysUserDO::getPhone, administratorsUserVO.getPhone()));
                if (nonNull(sysUserDO1)){
                    sysUserDO1.setType(13);
                    userDao.updateById(sysUserDO1);
                    log.info("添加专家小程序账号权限");
                }
            }else{
                sysUserRole.setRoleId(Long.parseLong(UserConstants.SANSHUO_INDUSTRY_CENTER_ROLE));
            }
            //配置权限
            sysUserRoleDAO.insert(sysUserRole);
            return R.ok();
        }
        return R.fail("账户名已存在");
    }
    /**
     * 三说会堂后台重置密码
     * */
    @Override
    public R resetPassExpertOrIndustryCenter(String account,String password) {
        SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().eq("account", account));
        if (nonNull(sysUserDO)){
            sysUserDO.setPassword(new BCryptPasswordEncoder().encode(password));
            userDao.updateById(sysUserDO);
            return R.ok();
        }
        return R.fail("修改失败");
    }
    /**
     * 移除专家权限
     * */
    @Override
    public R removeExpertRole(String phone) {
        if (nonNull(phone)){
            //是否有权限为专家的账号
            SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 11).eq(SysUserDO::getPhone, phone));
            if (nonNull(sysUserDO)){
                //删除后台账号
                sysUserDO.setStatus(2);
                userDao.updateById(sysUserDO);
                log.info("禁用专家后台账号成功");
            }
            //小程序账号移除专家权限
            SysUserDO sysUserDO1 = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 13).eq(SysUserDO::getPhone, phone));
            if (nonNull(sysUserDO1)){
                sysUserDO1.setType(1);
                userDao.updateById(sysUserDO1);
                log.info("移除专家权限成功");
            }
        }
        return R.ok();
    }
    @Override
    public R getAreaAndStreet() {
@@ -3721,7 +3945,6 @@
        }
        return dates;
    }
    /**
     * 获取最近本月20天数据