张天森
2022-10-09 28acbf00e1f3b431f0c52a201ea06638980b2bc2
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -22,12 +22,14 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO;
import com.panzhihua.common.model.dtos.partybuilding.ComPbCheckUserDTO;
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.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 +160,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;
@@ -492,6 +496,11 @@
        }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);
    }
@@ -780,6 +789,17 @@
            loginUserInfoVO.setLevel(2);
        }else if (isNull(loginUserInfoVO.getLevel())){
            loginUserInfoVO.setLevel(1);
        }
        loginUserInfoVO.setBackstageType(1);
        String[] account={"dongqu","xiqu","yanbianxian","miyixian","renhequ","fantaixinqu"};
        if("zuzhibu".equals(sysUserDO.getAccount())){
            loginUserInfoVO.setBackstageType(2);
        }
        if(ArrayUtil.contains(account,sysUserDO.getAccount())){
            loginUserInfoVO.setBackstageType(3);
        }
        if(sysUserDO.getBindingCheckUnitId()!=null){
            loginUserInfoVO.setBackstageType(4);
        }
        return R.ok(loginUserInfoVO);
    }
@@ -3708,6 +3728,31 @@
        return R.ok();
    }
    @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){
            return R.fail("账户名已存在");
        }
        SysUserDO sysUserDO1=new SysUserDO();
        sysUserDO1.setUserId(Snowflake.getId());
        sysUserDO1.setAccount(comPbCheckUserDTO.getAccount());
        sysUserDO1.setPassword(new BCryptPasswordEncoder().encode(comPbCheckUserDTO.getPassword()));
        sysUserDO1.setType(3);
        sysUserDO1.setAppId("wx118de8a734d269f0");
        sysUserDO1.setCommunityId(0L);
        sysUserDO1.setBindingCheckUnitId(comPbCheckUserDTO.getCheckUnitId());
        int restlt=userDao.insert(sysUserDO1);
        if(restlt>0){
            SysUserRoleDO sysUserRoleDO=new SysUserRoleDO();
            sysUserRoleDO.setRoleId(123321L);
            sysUserRoleDO.setUserId(sysUserDO1.getUserId());
            sysUserRoleDAO.insert(sysUserRoleDO);
        }
        return R.ok();
    }
    /**
     * 三说会堂新增业务中心或专家账号
     * */
@@ -3717,10 +3762,11 @@
        //是否存在相同账号
        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());
@@ -3734,6 +3780,13 @@
            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));
            }
@@ -3751,13 +3804,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() {