张天森
2022-10-08 cefc8d1ac454a79dc35c4789e4acfe2ad01b5562
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -28,6 +28,7 @@
import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO;
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;
@@ -158,6 +159,8 @@
    private SysTemplateConfigDao sysTemplateConfigDao;
    @Resource
    private ObjectMapper objectMapper;
    @Resource
    private CommunityService communityService;
    private static final Integer ALLCOUNTY=1;
    private static final Integer ALLSTREET=2;
    private static final Integer ALLCOMMUNITY=3;
@@ -470,6 +473,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);
        }
        //是否为三说会堂专家
        R expert = communityService.isExpert(loginUserInfoVO.getPhone());
        if (R.isOk(expert)){
            loginUserInfoVO.setType(13);
        }
        return R.ok(loginUserInfoVO);
    }
@@ -745,10 +775,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 +3710,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("账户名已存在");
@@ -3690,16 +3749,41 @@
     * 三说会堂后台重置密码
     * */
    @Override
    public R resetPassExpertOrIndustryCenter(Long userId,String password) {
        SysUserDO sysUserDO = userDao.selectById(userId);
    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() {