From c6e9ccc99a191d61b9599629702f84f495516095 Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期日, 09 十月 2022 09:34:46 +0800
Subject: [PATCH] 用户信息增加登陆用户是否为三说会堂专家

---
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java |   89 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 86 insertions(+), 3 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 c7413ea..b37dc88 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
@@ -27,7 +27,9 @@
 import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
 import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
 import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO;
+import com.panzhihua.common.model.vos.sanshuo.ComSanshuoExpertVO;
 import com.panzhihua.common.model.vos.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;
@@ -470,6 +472,33 @@
             }
         }
         loginUserInfoVO.setIsRealNamed(sysUserDO.getIdCard() != null);
+        //是否社区或街道后台
+        int countSocialOrg=userDao.countSocialOrg(sysUserDO.getUserId());
+        if(countSocialOrg>0){
+            loginUserInfoVO.setUserType(3);
+        }
+        else {
+            if(loginUserInfoVO.getStreetId()!=null){
+                loginUserInfoVO.setUserType(1);
+                loginUserInfoVO.setLevel(3);
+            }
+            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);
+        }
+        //是否为三说会堂专家
+        ComSanshuoExpertVO expertVO=userDao.isExpert(loginUserInfoVO.getPhone());
+        if (nonNull(expertVO)){
+            loginUserInfoVO.setType(13);
+        }
         return R.ok(loginUserInfoVO);
     }
 
@@ -745,10 +774,19 @@
         else {
             if(loginUserInfoVO.getStreetId()!=null){
                 loginUserInfoVO.setUserType(1);
+                loginUserInfoVO.setLevel(3);
             }
             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);
         }
         return R.ok(loginUserInfoVO);
     }
@@ -3671,16 +3709,36 @@
         //是否存在相同账号
         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(administratorsUserVO.getPassword());
+            sysUserDO.setPassword(new BCryptPasswordEncoder().encode(administratorsUserVO.getPassword()));
             sysUserDO.setName(administratorsUserVO.getName());
             if (nonNull(administratorsUserVO.getImageUrl())){
                 sysUserDO.setImageUrl(administratorsUserVO.getImageUrl());
             }
-            sysUserDO.setType(administratorsUserVO.getType());
+            if (nonNull(administratorsUserVO.getType())){
+                sysUserDO.setType(administratorsUserVO.getType());
+            }
             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("账户名已存在");
@@ -3693,13 +3751,38 @@
     public R resetPassExpertOrIndustryCenter(String account,String password) {
         SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().eq("account", account));
         if (nonNull(sysUserDO)){
-            sysUserDO.setPassword(password);
+            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() {

--
Gitblit v1.7.1