From 947d016e4bd349b78d540e3a869f55d68b2c610c Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期二, 08 十一月 2022 18:16:18 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/huacheng_test' into huacheng_test

---
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java |  486 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 380 insertions(+), 106 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
index 1897a3e..6562c08 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -1,54 +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.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;
@@ -59,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;
 
@@ -124,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;
@@ -184,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);
@@ -259,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).eq(SysUserDO::getAppId, appId));
+        }else if(isIndustryOrExpertAccount) {
+            //三说会堂行业分中心或专家后台账号登陆
+            sysUserDO = userDao.selectOne(
+                    new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, name).eq(SysUserDO::getAppId, appId));
+        }
+        else {
             LambdaQueryWrapper<SysUserDO> wrapper = new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type);
             if (type == 11) {
                 //只允许通过account登录
-                wrapper.and(sysUserDOLambdaQueryWrapper -> sysUserDOLambdaQueryWrapper.eq(SysUserDO::getAccount, name).eq(SysUserDO::getAppId, appId));
+                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);
@@ -280,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());
@@ -287,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()));
@@ -309,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);
     }
@@ -352,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());
                 }
@@ -368,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);
             }
             //是否是社区物业人员
@@ -385,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);
             }
             //是否网格员
@@ -419,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
@@ -463,8 +579,10 @@
     /**
      * 某社区后台人员查询
      *
-     * @param param       名字
-     * @param communityId 社区id
+     * @param param
+     *            名字
+     * @param communityId
+     *            社区id
      * @return 人员集合
      */
     @Override
@@ -491,8 +609,10 @@
     /**
      * 微心愿搜索社区团队人员列表
      *
-     * @param param       请求参数
-     * @param communityId 社区id
+     * @param param
+     *            请求参数
+     * @param communityId
+     *            社区id
      * @return 社区团队人员列表
      */
     @Override
@@ -503,7 +623,8 @@
     /**
      * 分页查询人脸识别
      *
-     * @param loginUserInfoVO 查询参数
+     * @param loginUserInfoVO
+     *            查询参数
      * @return 分页集合
      */
     @Override
@@ -690,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"};
@@ -872,7 +1001,7 @@
                 userDao.updateComPbMemberUserId(idCard, sysUserDO.getUserId());
             }
 
-            SysUserDO user = userDao.selectById(loginUserInfoVO.getUserId());
+            /*SysUserDO user = userDao.selectById(loginUserInfoVO.getUserId());
             if (user != null) {
                 // 实名认证成功推送订阅消息给用户
                 try {
@@ -885,7 +1014,7 @@
                 } catch (Exception e) {
                     log.error("推送用户订阅消息失败,失败原因:" + e.getMessage());
                 }
-            }
+            }*/
             return R.ok();
         }
         return R.fail();
@@ -1489,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);
     }
@@ -2163,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());
@@ -2834,14 +2973,24 @@
         }
 
         // 获取最近二十天数据
-        List<Date> serverndays = com.panzhihua.common.utlis.DateUtils.getOldDays();
-        serverndays.forEach(date -> {
-            // 查询社区活动数量
-            DataKanbanDTO dataKanbanDTO = userDao.selectCommunityAddUserOrder(dataKanBansDto.getAppId(), date);
+        List<Date> activeDate = getTwentyDays();
+
+        String twentyDay = com.panzhihua.common.utlis.DateUtils.getTwentyDay();
+        //获取最近活跃人数
+        List<UsersStatisticsDTO> actives = userDao.selectActive(twentyDay, dataKanBansDto.getAppId());
+        //获取最近注册人数
+        List<UsersStatisticsDTO> dailyAdds = userDao.selectDailyAdd(twentyDay, dataKanBansDto.getAppId());
+
+        Map<String, String> activeMap = actives.stream().collect(Collectors.toMap(UsersStatisticsDTO::getSpecificDate, UsersStatisticsDTO::getTotal));
+        Map<String, String> dailyAddMap = dailyAdds.stream().collect(Collectors.toMap(UsersStatisticsDTO::getSpecificDate, UsersStatisticsDTO::getTotal));
+
+
+        for (Date date : activeDate) {
+            String dateStr = DateUtil.format(date, "yyyy-MM-dd");
             communityActiveUserX.add(DateFormatUtils.format(date, "MM-dd"));
-            communityActiveUserY.add(dataKanbanDTO.getNum());
-            communityActiveUserZ.add(dataKanbanDTO.getDayNum());
-        });
+            communityActiveUserY.add(dailyAddMap.containsKey(dateStr) ? Integer.parseInt(dailyAddMap.get(dateStr)) : 0);
+            communityActiveUserZ.add(activeMap.containsKey(dateStr) ? Integer.parseInt(activeMap.get(dateStr)) : 0);
+        }
         indexDataKanbanVO.setCommunityActiveUserX(communityActiveUserX);
         indexDataKanbanVO.setCommunityAddUserY(communityActiveUserY);
         indexDataKanbanVO.setCommunityActiveUserY(communityActiveUserZ);
@@ -3161,16 +3310,19 @@
 
     @Override
     public R updateUserPartyStatus(Long userId) {
-        SysUserDO sysUserDO = userDao.selectById(userId);
-        if (sysUserDO != null) {
-            sysUserDO.setIsPartymember(1);
-            int updated = userDao.updateById(sysUserDO);
-            if (updated > 0) {
-                // 删除用户信息缓存
-                String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId();
-                stringRedisTemplate.delete(userKey);
+        List<SysUserDO> sysUserDOs = userDao.selectByUserId(userId);
+        for (SysUserDO sysUserDO : sysUserDOs) {
+            if (sysUserDO != null) {
+                sysUserDO.setIsPartymember(1);
+                int updated = userDao.updateById(sysUserDO);
+                if (updated > 0) {
+                    // 删除用户信息缓存
+                    String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId();
+                    stringRedisTemplate.delete(userKey);
+                }
             }
         }
+
         return R.ok();
     }
 
@@ -3462,15 +3614,18 @@
                 activeDate = getMonthTwentyDays();
             }
         }
-
         //获取最近活跃人数
-        Map<String, Long> active = userDao.getActive(activeX, streetId, areaCode, appId);
+        List<UsersStatisticsDTO> actives = userDao.getActive(activeX, streetId, areaCode, appId);
         //获取最近注册人数
-        Map<String, Long> dailyAdd = userDao.getDailyAdd(activeX, streetId, areaCode, appId);
+        List<UsersStatisticsDTO> dailyAdds = userDao.getDailyAdd(activeX, streetId, areaCode, appId);
+        Map<String, String> activeMap = actives.stream().collect(Collectors.toMap(UsersStatisticsDTO::getSpecificDate, UsersStatisticsDTO::getTotal));
+        Map<String, String> dailyAddMap = dailyAdds.stream().collect(Collectors.toMap(UsersStatisticsDTO::getSpecificDate, UsersStatisticsDTO::getTotal));
+
+
         for (Date date : activeDate) {
             String dateStr = DateUtil.format(date, "yyyy-MM-dd");
-            activeY.add(active.containsKey(dateStr) ? active.get("activeUser").toString() : "0");
-            adY.add(dailyAdd.containsKey(dateStr) ? dailyAdd.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));
@@ -3488,7 +3643,7 @@
                 String accessToken = "";
                 WxXCXTempSend util = new WxXCXTempSend();
                 try {
-                    accessToken = util.getAccessToken();
+                    accessToken = util.getAccessToken("wx118de8a734d269f0");
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -3498,15 +3653,15 @@
                         WxUtil.sendUuWash3(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "sU18zbyzxFldHAdOREaQCR5uq_uMvCKTmGtklO1xw-w");
                         break;
                     case 4:
-                        status = "车美已开始服务";
+                        status = "开始服务";
                         WxUtil.sendUuWash4(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "Eft5ksvsnOQANy2uNOGY43CC3pb33eDGA_lgCEoxuiw");
                         break;
                     case 6:
-                        status = "订单确认完成";
+                        status = "订单完成";
                         WxUtil.sendUuWash6(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "k1aV97H3pDNNcNcDTeZBD9jQemNDADnRE801HhTXweI");
                         break;
                     case 9:
-                        status = "订单已取消";
+                        status = "订单取消";
                         WxUtil.sendUuWash(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "9_2FhQPDxZoUqmAuIZ1L1zjjYXokdNvu7A0gzKfvruI");
                         break;
                 }
@@ -3534,15 +3689,15 @@
                         WxUtil.sendWsWash3(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "sNj6m-JBvW6rOokKGDX9X3-XH1AD0GY5_X0jA9JSLwc");
                         break;
                     case 4:
-                        status = "车美已开始服务";
+                        status = "开始服务";
                         WxUtil.sendWsWash4(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "Eft5ksvsnOQANy2uNOGY43CC3pb33eDGA_lgCEoxuiw");
                         break;
                     case 6:
-                        status = "订单确认完成";
+                        status = "订单完成";
                         WxUtil.sendWsWash6(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "iPS8yrsGDqy76hiP8bIbxkosveoX1xTFhdusSiGp-XM");
                         break;
                     case 9:
-                        status = "订单已取消";
+                        status = "订单取消";
                         WxUtil.sendWsWash(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "z_ysGXz9JWBc2rXuYZzVCXKJTyLf0w0WerrohuNoEng");
                         break;
                 }
@@ -3552,6 +3707,27 @@
     }
 
     @Override
+    public R getAllCommunityList() {
+        List<Integer> areaList = areaCodeList();
+        List<AreaVOS> areaVOList = new ArrayList<>();
+        for (Integer code : areaList) {
+            AreaVOS areaVO = new AreaVOS();
+            areaVO.setId(code);
+            areaVO.setName(areaCodeToName(code.longValue()));
+            List<StreetVOS> streetVOS = userDao.selectStreetByAreaCode(code);
+            Iterator<StreetVOS> iterator = streetVOS.listIterator();
+            while (iterator.hasNext()) {
+                StreetVOS vo = iterator.next();
+                List<CommunityVO> communityVOS = userDao.selectCommunityByStreetId(vo.getId(), 3);
+                vo.setChildList(communityVOS);
+
+            }
+            areaVO.setChildList(streetVOS);
+            areaVOList.add(areaVO);
+        }
+        return R.ok(areaVOList);
+    }
+    @Override
     public R getCommunityList(String name, Long id) {
         //区级账号名
         String[] streetList = {"bingcaogangjiedao", "donghuajiedao", "nongnongpingjiedao", "dadukoujiedaojiedao", "guazipingjiedao",
@@ -3559,7 +3735,7 @@
                 "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);
+//        List<Integer> ids = userDao.selectIdsByAccount(streetList);
         //村或社区账号
         Integer type = isVilliage(name);
         //是否为市级账号
@@ -3687,6 +3863,105 @@
         return R.ok();
     }
 
+    /**
+     * 三说会堂新增业务中心或专家账号
+     * */
+    @Override
+    public R addExpertOrIndustryCenter(AdministratorsUserVO administratorsUserVO) {
+        SysUserDO sysUserDO=new SysUserDO();
+        //是否存在相同账号
+        SysUserDO userDO = userDao.selectOne(new QueryWrapper<SysUserDO>().eq("account", administratorsUserVO.getAccount()));
+        if (isNull(userDO)){
+            sysUserDO.setAppId("wx0cef797390444b75");
+            sysUserDO.setCreateAt(new Date());
+            sysUserDO.setUserId(administratorsUserVO.getUserId());
+            sysUserDO.setAccount(administratorsUserVO.getAccount());
+            sysUserDO.setPassword(new BCryptPasswordEncoder().encode(administratorsUserVO.getPassword()));
+            sysUserDO.setName(administratorsUserVO.getName());
+            if (nonNull(administratorsUserVO.getImageUrl())){
+                sysUserDO.setImageUrl(administratorsUserVO.getImageUrl());
+            }
+            if (nonNull(administratorsUserVO.getType())){
+                sysUserDO.setType(administratorsUserVO.getType());
+            }
+            if (nonNull(administratorsUserVO.getPhone())){
+                sysUserDO.setPhone(administratorsUserVO.getPhone());
+            }
+            userDao.insert(sysUserDO);
+            //分配权限
+            SysUserRoleDO sysUserRole=new SysUserRoleDO();
+            sysUserRole.setUserId(sysUserDO.getUserId());
+            if (sysUserDO.getType().equals(11)){
+                sysUserRole.setRoleId(Long.parseLong(UserConstants.SANSHUO_EXPERT_ROLE));
+                //将专家小程序账号设置为专家权限
+                SysUserDO sysUserDO1 = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 1).eq(SysUserDO::getPhone, administratorsUserVO.getPhone()));
+                if (nonNull(sysUserDO1)){
+                    sysUserDO1.setType(13);
+                    userDao.updateById(sysUserDO1);
+                    log.info("添加专家小程序账号权限");
+                }
+            }else{
+                sysUserRole.setRoleId(Long.parseLong(UserConstants.SANSHUO_INDUSTRY_CENTER_ROLE));
+            }
+            //配置权限
+            sysUserRoleDAO.insert(sysUserRole);
+            return R.ok();
+        }
+        return R.fail("账户名已存在");
+    }
+
+    /**
+     * 三说会堂后台重置密码
+     * */
+    @Override
+    public R resetPassExpertOrIndustryCenter(String account,String password) {
+        SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().eq("account", account));
+        if (nonNull(sysUserDO)){
+            sysUserDO.setPassword(new BCryptPasswordEncoder().encode(password));
+            userDao.updateById(sysUserDO);
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 移除专家权限
+     * */
+    @Override
+    public R removeExpertRole(String phone) {
+        if (nonNull(phone)){
+            //是否有权限为专家的账号
+            SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 11).eq(SysUserDO::getPhone, phone));
+            if (nonNull(sysUserDO)){
+                //删除后台账号
+                sysUserDO.setStatus(2);
+                userDao.updateById(sysUserDO);
+                log.info("禁用专家后台账号成功");
+            }
+            //小程序账号移除专家权限
+            SysUserDO sysUserDO1 = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 13).eq(SysUserDO::getPhone, phone));
+            if (nonNull(sysUserDO1)){
+                sysUserDO1.setType(1);
+                userDao.updateById(sysUserDO1);
+                log.info("移除专家权限成功");
+            }
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R feedBackReply(SysUserFeedbackVO sysUserFeedbackVO) {
+        SysUserFeedbackDO sysUserFeedbackDO=new SysUserFeedbackDO();
+        BeanUtils.copyProperties(sysUserFeedbackVO, sysUserFeedbackDO);
+        return R.ok(sysUserFeedbackDAO.updateById(sysUserFeedbackDO));
+    }
+
+    @Override
+    public R myFeedBack(Long id,Integer type) {
+        List<SysUserFeedbackDO> sysUserFeedbackDOS = sysUserFeedbackDAO.selectList(new QueryWrapper<SysUserFeedbackDO>().lambda().eq(SysUserFeedbackDO::getType, type).eq(SysUserFeedbackDO::getUserId, id));
+        return R.ok(sysUserFeedbackDOS);
+    }
+
 
     @Override
     public R getAreaAndStreet() {
@@ -3717,7 +3992,6 @@
         }
         return dates;
     }
-
 
     /**
      * 获取最近本月20天数据

--
Gitblit v1.7.1