lidongdong
2024-04-01 557c6e432eb6fb028842f684e0871fe5dec6f79f
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -31,6 +31,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.sanshuo.ComSanshuoExpertVO;
import com.panzhihua.common.model.vos.shop.ComShopUserAddressVO;
import com.panzhihua.common.model.vos.user.*;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.utlis.*;
@@ -331,9 +332,18 @@
            return R.fail();
        }
        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
        //获取后台商家user
        SysUserDO sysUser = userDao.selectOne(
                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 5).eq(SysUserDO::getPhone, sysUserDO.getPhone()).eq(SysUserDO::getAppId, appId));
        //判断是否是商家账号
        if (nonNull(sysUser)){
            loginUserInfoVO.setBackstageUserId(sysUser.getUserId());
            loginUserInfoVO.setBackstageType(5);
        }
        if (nonNull(sysUserDO.getStreetId())){
            loginUserInfoVO.setStreetId(sysUserDO.getStreetId());
        }
        loginUserInfoVO.setLoveIntegral(sysUserDO.getLoveIntegral());
        loginUserInfoVO.setUserId(sysUserDO.getUserId());
        loginUserInfoVO.setName(sysUserDO.getName());
        loginUserInfoVO.setPassword(sysUserDO.getPassword());
@@ -371,6 +381,13 @@
                loginUserInfoVO.setIsDpcMember(1);
            }
        }
        //是否为物业公司账号
        if (nonNull(sysUserDO.getPhone())){
            Long propertyAccount = userDao.isPropertyAccount(sysUserDO.getPhone());
            if (nonNull(propertyAccount)){
                loginUserInfoVO.setPropertyId(propertyAccount);
            }
        }
        return R.ok(loginUserInfoVO);
    }
@@ -389,6 +406,7 @@
        }
        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
        BeanUtils.copyProperties(sysUserDO, loginUserInfoVO);
        loginUserInfoVO.setLoveIntegral(sysUserDO.getLoveIntegral());
        List<SysRoleDO> roleDOList = roleDAO.selectByUserId(sysUserDO.getUserId());
        Set<String> set = new HashSet<>();
        if (!ObjectUtils.isEmpty(roleDOList)) {
@@ -524,6 +542,37 @@
            if (i>0){
                loginUserInfoVO.setIsDpcMember(1);
            }
        }
        //获取后台商家user
        SysUserDO sysUser = userDao.selectOne(
                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 5).eq(SysUserDO::getPhone, sysUserDO.getPhone()).eq(SysUserDO::getAppId, "wx118de8a734d269f0"));
        //判断是否是商家账号
        if (nonNull(sysUser)){
            loginUserInfoVO.setBackstageUserId(sysUser.getUserId());
            loginUserInfoVO.setBackstageType(5);
            Long storeId = userDao.selectStoreIdIdByUserId(sysUser.getUserId());
            loginUserInfoVO.setStoreIdId(storeId);
        }
        //是否为物业公司账号
        if (nonNull(sysUserDO.getPhone())){
            Long propertyAccount = userDao.isPropertyAccount(sysUserDO.getPhone());
            if (nonNull(propertyAccount)){
                loginUserInfoVO.setPropertyId(propertyAccount);
            }
        }
        //获取自提点账号
        if (StrUtil.isNotBlank(sysUserDO.getPhone())){
            if(userDao.checkPoint(sysUserDO.getPhone()) > 0){
                loginUserInfoVO.setIsPoint(true);
            }else {
                loginUserInfoVO.setIsPoint(false);
            }
        }
        //默认地址
        ComShopUserAddressVO comShopUserAddressVO = userDao.selectDefaultAddressVO(userId);
        if (nonNull(comShopUserAddressVO)){
            loginUserInfoVO.setComShopUserAddressVO(comShopUserAddressVO);
        }
        return R.ok(loginUserInfoVO);
    }
@@ -753,12 +802,14 @@
     * @return 人员详情
     */
    @Override
    public R<LoginUserInfoVO> detailUser(Long userId) {
    public R<LoginUserInfoVO> detailUser(Long userId)
    {
        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
        SysUserDO sysUserDO = userDao.selectById(userId);
        if (ObjectUtils.isEmpty(sysUserDO)) {
            return R.fail("人员不存在");
        }
        BeanUtils.copyProperties(sysUserDO, loginUserInfoVO);
        List<ComMngFamilyInfoDO> comMngFamilyInfoDOS = comMngFamilyInfoDAO
                .selectList(new QueryWrapper<ComMngFamilyInfoDO>().lambda().eq(ComMngFamilyInfoDO::getUserId, userId));
@@ -792,6 +843,13 @@
        //是否是防疫工作人员
        loginUserInfoVO.setIsAcidMember(0);
        ComActAcidMemberVO acidMember = userDao.selectAcidMemberByPhone(loginUserInfoVO.getPhone());
        //是否为普达物业公司后台账号
        if (nonNull(sysUserDO.getPhone())){
            Long propertyAccount = userDao.isPropertyAccount(sysUserDO.getPhone());
            if (nonNull(propertyAccount)){
                loginUserInfoVO.setPropertyId(propertyAccount);
            }
        }
        if (nonNull(acidMember)) {
            if (acidMember.getRelationName().equals("panzhihua") || acidMember.getRelationName().equals("西区") || acidMember.getRelationName().equals("东区") || acidMember.getRelationName().equals("仁和区") || acidMember.getRelationName().equals("米易县") || acidMember.getRelationName().equals("盐边县")) {
                loginUserInfoVO.setIsAcidMember(1);
@@ -831,6 +889,20 @@
        }
        if (sysUserDO.getBindingCheckUnitId() != null) {
            loginUserInfoVO.setBackstageType(4);
        }
        //判断是否是商家账号
        Long storeId = userDao.selectStoreIdIdByUserId(sysUserDO.getUserId());
        if (null != storeId){
            loginUserInfoVO.setBackstageUserId(sysUserDO.getUserId());
            loginUserInfoVO.setBackstageType(5);
            loginUserInfoVO.setStoreIdId(storeId);
        }
        SysUserRoleDO sysUserRoleDO=sysUserRoleDAO.selectOne(new QueryWrapper<SysUserRoleDO>()
                .lambda().eq(SysUserRoleDO::getUserId,sysUserDO.getUserId()));
        if(sysUserRoleDO!=null && sysUserRoleDO.getRoleId()!=null )
        {
            loginUserInfoVO.setRoleId(sysUserRoleDO.getRoleId()+"");
        }
        return R.ok(loginUserInfoVO);
    }
@@ -1190,6 +1262,15 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R addUserBackstage(AdministratorsUserVO administratorsUserVO) {
        List<SysUserDO> list=userDao.selectList(new QueryWrapper<SysUserDO>().lambda().
                       eq(SysUserDO::getAppId,administratorsUserVO.getAppid()).
                eq(SysUserDO::getAccount,administratorsUserVO.getAccount()));
        if(list!=null && list.size()>0)
        {
            return R.fail("账户已存在!");
        }
        ComActVO comActVO = userDao.selectCommunity(administratorsUserVO.getCommunityId());
        if (nonNull(comActVO)) {
            List<ComAreaTownCommunityVO> areaTownList = userDao.selectAreaTownCommunity(comActVO.getName());
@@ -1222,11 +1303,29 @@
            }
            sysRoleDO.setRoleSort(0);
            sysRoleDO.setCreateBy(administratorsUserVO.getUserId());
            int insert = roleDAO.insert(sysRoleDO);
            if (insert > 0) {
                SysRoleDO sysRoleDO1 = roleDAO.selectOne(
                        new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, sysRoleDO.getRoleKey()));
                roleId = sysRoleDO1.getRoleId();
            sysRoleDO.setRoleId(Snowflake.getId());
            SysRoleDO sysRoleDOSelext = roleDAO.selectOne(
                    new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, sysRoleDO.getRoleKey()));
            if(sysRoleDOSelext==null)
            {
                int insert = roleDAO.insert(sysRoleDO);
                if (insert > 0) {
                    SysRoleDO sysRoleDO1 = roleDAO.selectOne(
                            new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleId, sysRoleDO.getRoleId()));
                    roleId = sysRoleDO1.getRoleId();
                    // 新角色设置所有权限
                    MenuRoleVO menuRoleVO = new MenuRoleVO();
                    menuRoleVO.setIsAll(1);
                    menuRoleVO.setCommunityId(communityId);
                    menuRoleVO.setRoleId(roleId);
                    this.putMenuRole(menuRoleVO);
                }
            }
            else
            {
                roleId = sysRoleDOSelext.getRoleId();
                // 新角色设置所有权限
                MenuRoleVO menuRoleVO = new MenuRoleVO();
                menuRoleVO.setIsAll(1);
@@ -1234,6 +1333,7 @@
                menuRoleVO.setRoleId(roleId);
                this.putMenuRole(menuRoleVO);
            }
        }
        if (roleId.intValue() == 777777777) {
            SysRoleDO sysRoleDO = new SysRoleDO();
@@ -1241,11 +1341,47 @@
            sysRoleDO.setRoleKey(Constants.STREET_ROLE_KEY + administratorsUserVO.getStreetId());
            sysRoleDO.setRoleSort(0);
            sysRoleDO.setCreateBy(administratorsUserVO.getUserId());
            int insert = roleDAO.insert(sysRoleDO);
            if (insert > 0) {
                SysRoleDO sysRoleDO1 = roleDAO.selectOne(
                        new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, sysRoleDO.getRoleKey()));
                roleId = sysRoleDO1.getRoleId();
            sysRoleDO.setRoleId(Snowflake.getId());
            SysRoleDO sysRoleDOSelext = roleDAO.selectOne(
                    new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, sysRoleDO.getRoleKey()));
            if(sysRoleDOSelext==null)
            {
                int insert = roleDAO.insert(sysRoleDO);
                if (insert > 0) {
                    SysRoleDO sysRoleDO1 = roleDAO.selectOne(
                            new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleId, sysRoleDO.getRoleId()));
                    roleId = sysRoleDO1.getRoleId();
                    // 新街道管理员角色设置固定三社权限
                    MenuRoleVO menuRoleVO = new MenuRoleVO();
                    List<Long> menu = new ArrayList<>();
                    if (administratorsUserVO.getSocialType() == 1) {
                        menu.add(233L);
                        menu.add(234L);
                        menu.add(235L);
                        menu.add(236L);
                        menu.add(237L);
                    } else if (administratorsUserVO.getSocialType() == 2) {
                        menu.add(233L);
                        menu.add(234L);
                        menu.add(236L);
                        menu.add(237L);
                        menu.add(238L);
                    } else if (administratorsUserVO.getSocialType() == 3) {
                        menu.add(233L);
                        menu.add(237L);
                    } else {
                        menuRoleVO.setIsAll(1);
                    }
                    menuRoleVO.setMenuIds(menu);
                    menuRoleVO.setRoleId(roleId);
                    this.putMenuRole(menuRoleVO);
                }
            }
            else
            {
                roleId = sysRoleDOSelext.getRoleId();
                // 新街道管理员角色设置固定三社权限
                MenuRoleVO menuRoleVO = new MenuRoleVO();
                List<Long> menu = new ArrayList<>();
@@ -1271,6 +1407,7 @@
                menuRoleVO.setRoleId(roleId);
                this.putMenuRole(menuRoleVO);
            }
        }
        SysRoleDO roleDO = roleDAO.selectById(roleId);
        if (ObjectUtils.isEmpty(roleDO)) {
@@ -1337,13 +1474,12 @@
                menu.add(300L);
                menu.add(303L);
            }
            sysRoleDO.setRoleSort(0);
            sysRoleDO.setCreateBy(administratorsUserVO.getUserId());
            SysRoleDO sysRoleDO1 = roleDAO.selectOne(
            List<SysRoleDO> sysRoleDO1 = roleDAO.selectList(
                    new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, sysRoleDO.getRoleKey()));
            if (sysRoleDO1 != null) {
                sysRoleDO = sysRoleDO1;
            if (sysRoleDO1 != null && sysRoleDO1.size()>0 ) {
                sysRoleDO = sysRoleDO1.get(0);
                roleId = sysRoleDO.getRoleId();
            } else {
                roleDAO.insert(sysRoleDO);
@@ -1354,6 +1490,8 @@
                this.putMenuRole(menuRoleVO);
            }
        }
        log.info("======================type"+administratorsUserVO.getType());
        log.info("=======================roleId"+roleId);
        SysRoleDO roleDO = roleDAO.selectById(roleId);
        if (ObjectUtils.isEmpty(roleDO)) {
            return R.fail("角色不存在");
@@ -1361,6 +1499,9 @@
        String encode = new BCryptPasswordEncoder().encode(administratorsUserVO.getPassword());
        administratorsUserVO.setPassword(encode);
        BeanUtils.copyProperties(administratorsUserVO, sysUserDO);
        if (nonNull(administratorsUserVO.getAppid())){
            sysUserDO.setAppId(administratorsUserVO.getAppid());
        }
        int insert = 0;
        try {
            insert = userDao.insert(sysUserDO);
@@ -1374,7 +1515,6 @@
            } else if (e.getMessage().contains("23000")) {
                throw new ServiceException("手机号已存在");
            }
        }
        if (insert > 0) {
            SysUserDO sysUserDO1 = userDao
@@ -2845,7 +2985,8 @@
    @Transactional(rollbackFor = Exception.class)
    public R addConvenientMerchantUser(ConvenientMerchantDTO convenientMerchantDTO) {
        SysUserDO sysUserDO;
        sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, convenientMerchantDTO.getAccount()));
        sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, convenientMerchantDTO.getAccount())
                .eq(SysUserDO::getPhone,convenientMerchantDTO.getMobilePhone()).eq(SysUserDO::getAppId,"wx118de8a734d269f0"));
        if (nonNull(sysUserDO)) {
            return R.fail("账户已经存在");
        }
@@ -2854,12 +2995,13 @@
        String encode = new BCryptPasswordEncoder().encode(convenientMerchantDTO.getPassword());
        BeanUtils.copyProperties(convenientMerchantDTO, sysUserDO);
        sysUserDO.setAccount(convenientMerchantDTO.getAccount());
        sysUserDO.setType(10);
        sysUserDO.setType(5);
        sysUserDO.setAreaId(null);
        sysUserDO.setStatus(1);
        sysUserDO.setPhone(null);
        sysUserDO.setPhone(convenientMerchantDTO.getMobilePhone());
        sysUserDO.setName(convenientMerchantDTO.getContacts());
        sysUserDO.setPassword(encode);
        sysUserDO.setAppId("wx118de8a734d269f0");
        try {
            userDao.insert(sysUserDO);
            return R.ok(sysUserDO.getUserId());
@@ -3349,12 +3491,41 @@
        }
        Map<String, String> headerMap = new HashMap<>();
        headerMap.put("appid", appId);
        String resultJson = HttpClientUtil.get("https://api.uucsh.cn/member/wx/get-access?province=" + uuLoginVO.getProvince() + "&city=" + uuLoginVO.getCity() + "&area=" + uuLoginVO.getArea() + "&appid=" + appId + "&timestamp=" + uuLoginVO.getTimestamp() + "&sign=" + uuLoginVO.getSign() + "&mobile=" + uuLoginVO.getMobile() + "&couponId=" + uuLoginVO.getCouponId(), headerMap, null);
        String str="";
        if(!StringUtils.isEmpty(uuLoginVO.getProvince()))
        {
            str=str+"province=" + uuLoginVO.getProvince();
        }
        if(!StringUtils.isEmpty(uuLoginVO.getCity()))
        {
            str=str+"&city=" + uuLoginVO.getCity();
        }
        if(!StringUtils.isEmpty(uuLoginVO.getArea()))
        {
            str=str+"&area=" + uuLoginVO.getArea();
        }
        if(!StringUtils.isEmpty(uuLoginVO.getCouponId()))
        {
            str=str+"&couponId=" + uuLoginVO.getCouponId();
        }
//        String resultJson = HttpClientUtil.get("https://uu-api.imashuo.com/member/wx/get-acces.s?province=" + uuLoginVO.getProvince() + "&city=" + uuLoginVO.getCity() + "&area=" + uuLoginVO.getArea() + "&appid=" + appId + "&timestamp=" + uuLoginVO.getTimestamp() + "&sign=" + uuLoginVO.getSign() + "&mobile=" + uuLoginVO.getMobile() + "&couponId=" + uuLoginVO.getCouponId(), headerMap, null);
        String resultJson = HttpClientUtil.get("https://uu-api.imashuo.com/member/wx/get-access?" + str +
                "&appid=" + appId +
                "&timestamp=" + uuLoginVO.getTimestamp() +
                "&sign=" + uuLoginVO.getSign() +
                "&mobile=" + uuLoginVO.getMobile() ,
                headerMap, null);
        JSONObject result = JSON.parseObject(resultJson);
        if (result.get("status").equals(1)) {
            return R.ok(result.get("data"));
            return R.ok(result.get("data")+"   "+resultJson);
        }
        return R.fail("信息错误");
        return R.fail("信息错误"+"   "+resultJson);
    }
    @Override
@@ -3707,6 +3878,27 @@
    }
    @Override
    public R getAllCommunityList() {
        List<Integer> areaList = areaCodeList();
        List<AreaVOStr> areaVOList = new ArrayList<>();
        for (Integer code : areaList) {
            AreaVOStr areaVO = new AreaVOStr();
            areaVO.setId(code+"");
            areaVO.setName(areaCodeToName(code.longValue()));
            List<StreetVOStr> streetVOS = userDao.selectStreetByAreaCodeStr(code);
            Iterator<StreetVOStr> iterator = streetVOS.listIterator();
            while (iterator.hasNext()) {
                StreetVOStr vo = iterator.next();
                List<CommunityVO> communityVOS = userDao.selectCommunityByStreetId(Long.parseLong(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",
@@ -3714,7 +3906,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);
        //是否为市级账号
@@ -3928,6 +4120,32 @@
        return R.ok();
    }
    @Override
    public R feedBackReply(SysUserFeedbackVO sysUserFeedbackVO) {
        if (isNull(sysUserFeedbackVO.getReply())){
            return R.fail("回复内容不能为空");
        }
        SysUserFeedbackDO sysUserFeedbackDO1 = sysUserFeedbackDAO.selectById(sysUserFeedbackVO.getId());
        sysUserFeedbackDO1.setReply(sysUserFeedbackVO.getReply());
        return R.ok(sysUserFeedbackDAO.reply(sysUserFeedbackDO1));
    }
    @Override
    public R myFeedBack(Long id,Integer type,Long propertyId) {
        List<SysUserFeedbackDO> sysUserFeedbackDOS = sysUserFeedbackDAO.selectList(new QueryWrapper<SysUserFeedbackDO>().lambda().eq(SysUserFeedbackDO::getType, type).eq(SysUserFeedbackDO::getUserId, id).eq(SysUserFeedbackDO::getPropertyId,propertyId ));
        return R.ok(sysUserFeedbackDOS);
    }
    @Override
    public R propertyCheck(String phone) {
        Long propertyAccount = userDao.isPropertyAccount(phone);
        log.info("==============物业公司id"+propertyAccount);
        if (isNull(propertyAccount)){
            return R.fail();
        }
        return R.ok(propertyAccount);
    }
    @Override
    public R getAreaAndStreet() {