From 99c2925298d487e37a16da35fcf0b9a2437f1a54 Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期一, 15 八月 2022 17:33:46 +0800 Subject: [PATCH] bug修改 --- springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java | 270 +++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 209 insertions(+), 61 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 a4fb969..81c2810 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 @@ -13,9 +13,12 @@ import javax.annotation.Resource; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.collection.ListUtil; 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.NumberUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -41,6 +44,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -105,6 +109,7 @@ import cn.hutool.core.util.IdcardUtil; import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestParam; // import com.panzhihua.common.service.grid.GridService; @@ -300,7 +305,7 @@ * @return 用户基本信息、角色 */ @Override - public R<LoginUserInfoVO> getUserInfo(String name, int type) { + public R<LoginUserInfoVO> getUserInfo(String name, int type,String appId) { SysUserDO sysUserDO = null; if (1 == type) { sysUserDO = userDao.selectOne( @@ -309,9 +314,9 @@ LambdaQueryWrapper<SysUserDO> wrapper = new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type); if (type == 11) { //只允许通过account登录 - wrapper.and(sysUserDOLambdaQueryWrapper -> sysUserDOLambdaQueryWrapper.eq(SysUserDO::getAccount, name)); + wrapper.and(sysUserDOLambdaQueryWrapper -> sysUserDOLambdaQueryWrapper.eq(SysUserDO::getAccount, name).eq(SysUserDO::getAppId,appId)); } else { - wrapper.and(sysUserDOLambdaQueryWrapper -> sysUserDOLambdaQueryWrapper.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); @@ -337,11 +342,11 @@ if(StringUtils.isNotEmpty(areaName)){ loginUserInfoVO.setAreaName(areaName); } - SysAppConfig sysAppConfig=sysAppConfigDao.selectOne(new QueryWrapper<SysAppConfig>().lambda().eq(SysAppConfig::getAreaCode,comActVO.getAreaCode())); - if(sysAppConfig!=null){ - loginUserInfoVO.setAppId(sysAppConfig.getAppId()); - loginUserInfoVO.setAppSecret(sysAppConfig.getSecret()); - } +// SysAppConfig sysAppConfig=sysAppConfigDao.selectOne(new QueryWrapper<SysAppConfig>().lambda().eq(SysAppConfig::getAreaCode,comActVO.getAreaCode())); +// if(sysAppConfig!=null){ +// loginUserInfoVO.setAppId(sysAppConfig.getAppId()); +// loginUserInfoVO.setAppSecret(sysAppConfig.getSecret()); +// } } } List<SysRoleDO> roleDOList = roleDAO.selectByUserId(sysUserDO.getUserId()); @@ -688,12 +693,10 @@ @Override public R<LoginUserInfoVO> detailUser(Long userId) { LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO(); - if (userId < 100000000l) { 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)); @@ -706,43 +709,6 @@ }); loginUserInfoVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS); } - - } else { - // 导入社区人员 - SysUserInputDO sysUserInputDO = sysUserInputDAO.selectById(userId - 100000000); - if (ObjectUtils.isEmpty(sysUserInputDO)) { - return R.fail("人员不存在"); - } - String name1 = sysUserInputDO.getName(); - BeanUtils.copyProperties(sysUserInputDO, loginUserInfoVO); - String doorNumber = sysUserInputDO.getDoorNumber(); - Long areaId = sysUserInputDO.getAreaId(); - List<SysUserInputDO> sysUserInputDOS = sysUserInputDAO.selectList(new QueryWrapper<SysUserInputDO>() - .lambda().eq(SysUserInputDO::getDoorNumber, doorNumber).eq(SysUserInputDO::getAreaId, areaId)); - if (!ObjectUtils.isEmpty(sysUserInputDOS)) { - List<ComMngFamilyInfoVO> comMngFamilyInfoVOS = new ArrayList<>(); - sysUserInputDOS.forEach(sysUserInputDO1 -> { - String name = sysUserInputDO1.getName(); - if (name1.equals(name)) { - return; - } - Integer isRent = sysUserInputDO1.getIsRent(); - ComMngFamilyInfoVO comMngFamilyInfoVO = new ComMngFamilyInfoVO(); - comMngFamilyInfoVO.setIdCard(SensitiveUtil.desensitizedIdNumber(sysUserInputDO1.getIdCard())); - comMngFamilyInfoVO.setName(name); - comMngFamilyInfoVO.setPhone(SensitiveUtil.desensitizedPhoneNumber(sysUserInputDO1.getPhone())); - if (isRent.intValue() == 0) { - comMngFamilyInfoVO.setRelationship("家人"); - } else { - comMngFamilyInfoVO.setRelationship("合租"); - } - comMngFamilyInfoVO.setAge(IdCard.IdNOToAge(sysUserInputDO1.getIdCard())); - comMngFamilyInfoVOS.add(comMngFamilyInfoVO); - }); - loginUserInfoVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS); - } - - } ComActVO comActVO = userDao.selectCommunity(loginUserInfoVO.getCommunityId()); if (!ObjectUtils.isEmpty(comActVO)) { String areaName=userDao.selectAreaCodeByStreetId(comActVO.getStreetId()); @@ -1753,9 +1719,9 @@ * @return 协议内容 */ @Override - public R userAgreement(int type) { + public R userAgreement(int type,String appId) { SysUserAgreementDO sysUserAgreementDO = sysUserAgreementDAO - .selectOne(new QueryWrapper<SysUserAgreementDO>().lambda().eq(SysUserAgreementDO::getType, type)); + .selectOne(new QueryWrapper<SysUserAgreementDO>().lambda().eq(SysUserAgreementDO::getType, type).eq(SysUserAgreementDO::getAppId,appId)); return R.ok(sysUserAgreementDO); } @@ -2074,9 +2040,9 @@ * @return 协议内容 */ @Override - public R agreement(Integer type) { + public R agreement(Integer type,String appId) { SysUserAgreementDO sysUserAgreementDO = sysUserAgreementDAO - .selectOne(new QueryWrapper<SysUserAgreementDO>().lambda().eq(SysUserAgreementDO::getType, type)); + .selectOne(new QueryWrapper<SysUserAgreementDO>().lambda().eq(SysUserAgreementDO::getType, type).eq(SysUserAgreementDO::getAppId,appId)); if (ObjectUtils.isEmpty(sysUserAgreementDO)) { return R.fail("协议不存在"); } @@ -2290,14 +2256,20 @@ String encode = new BCryptPasswordEncoder().encode(storeVO.getStorePassword()); BeanUtils.copyProperties(storeVO, sysUserDO); sysUserDO.setAccount(storeVO.getStoreAccount()); - sysUserDO.setType(5); + sysUserDO.setType(20); + sysUserDO.setCommunityId(communityId); sysUserDO.setAreaId(null); sysUserDO.setStatus(1); 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()); @@ -3463,8 +3435,8 @@ } } if (ObjectUtils.isEmpty(range)){ - //查看累计数据时才计算其他用户的比例 - final Boolean flag=(type.equals(ALLSTREET) || type.equals(ALLCOMMUNITY) || type.equals(BYSTREET) || type.equals(BYAREA)); + //查看累计数据时才计算其他用户的比例 || type.equals(BYSTREET) || type.equals(BYAREA)) + final Boolean flag=(type.equals(ALLSTREET) || type.equals(ALLCOMMUNITY)); if (flag){ UserRateAnalysisVO vo=new UserRateAnalysisVO(); vo.setName(OTHERUSER); @@ -3478,7 +3450,6 @@ userRate.setUserList(userRateAnalysisVOList); return R.ok(userRate); } - @Override public R realUser(Integer type, Long streetId, Long areaCode, Integer range) { @@ -3510,9 +3481,11 @@ realUserVO.setRealUserRate(rate.doubleValue()); } for (RealUser realUser : realUsers) { - if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUser)){ - if (realUser.getCommunityId().equals("11")){ - continue; + if (!(type.equals(ALLCOUNTY))){ + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUser)){ + if (realUser.getCommunityId().equals("11")){ + continue; + } } } RealUserAnalysisVO vo=new RealUserAnalysisVO(); @@ -3566,7 +3539,6 @@ return R.ok(vo); } - @Override public R uuPush(String washPhone,String phone,String washName,Integer orderStatus) { if(StringUtils.isNotEmpty(phone)){ @@ -3598,6 +3570,108 @@ } return R.ok(); } + @Override + public R getCommunityList(String name,Long id) { + //区级账号名 + String[] streetList={"bingcaogangjiedao","donghuajiedao","nongnongpingjiedao","dadukoujiedaojiedao","guazipingjiedao", + "yinjiangzhen","qingxiangpingjiedao","yuquanjiedao","hemenkoujiedao","dabaodingjiedao","taojiadujiedao","gelipinzhen","dahezhonglujiedao", + "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); + //村或社区账号 + Integer type=isVilliage(name); + //是否为市级账号 + Boolean cityAccount = isCityAccount(name); + if (cityAccount){ + 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(), type); + vo.setChildList(communityVOS); + if (type!=3){ + if (communityVOS==null || communityVOS.size()==0){ + iterator.remove(); + } + } + } + areaVO.setChildList(streetVOS); + areaVOList.add(areaVO); + } + return R.ok(areaVOList); + }else{ + Boolean areaAccount = isAreaAccount(name); + if (areaAccount){ + Integer areaCode = accountToCode(name); + List<Integer> areaList=new ArrayList<>(); + areaList.add(areaCode); + 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(), type); + vo.setChildList(communityVOS); + } + areaVO.setChildList(streetVOS); + areaVOList.add(areaVO); + } + return R.ok(areaVOList); + }else{ + //非区县账号,只看街道下属社区 + if (ArrayUtil.contains(streetList, name)){ + List<StreetVOS> list=new ArrayList<>(); + //只看当前街道下属社区 + StreetVOS streetVOS = userDao.selectStreetByName(name); + List<CommunityVO> communityVOS = userDao.selectCommunityByStreetName(name); + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(streetVOS)) { + streetVOS.setChildList(communityVOS); + } + list.add(streetVOS); + return R.ok(list); + } + } + } + return R.ok(null); + } + + @Override + public R resetPassword(Integer type, String account) { + SysUserDO sysUserDO=userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount,account).eq(SysUserDO::getType,type)); + if(sysUserDO!=null){ + sysUserDO.setPassword("$2a$10$F/2lE2NMhKNHJfi5.FLmfu7jIr7ImRWgCTTeO6m3IRNR2V4sv8YR."); + userDao.updateById(sysUserDO); + } + return R.ok(); + } + + @Override + public R tfLogin(UuLoginVO uuLoginVO) { + SysUserDO sysUserDO=userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone,uuLoginVO.getMobile()).eq(SysUserDO::getType,16)); + if(sysUserDO==null){ + sysUserDO=new SysUserDO(); + sysUserDO.setPassword("$2a$10$F/2lE2NMhKNHJfi5.FLmfu7jIr7ImRWgCTTeO6m3IRNR2V4sv8YR."); + sysUserDO.setType(16); + sysUserDO.setStatus(1); + sysUserDO.setPhone(uuLoginVO.getMobile()); + sysUserDO.setAccount(uuLoginVO.getMobile()); + sysUserDO.setAppId("wx0cef797390444b75"); + userDao.insert(sysUserDO); + } + return R.ok(); + } + @Override public R getAreaAndStreet() { @@ -3607,11 +3681,12 @@ AreaVO vo=new AreaVO(); vo.setId(code); vo.setName(areaCodeToName(code.longValue())); - vo.setStreetList(userDao.selectStreetByAreaCode(code)); + vo.setStreetList(userDao.selectStreetsByAreaCode(code)); areaVOList.add(vo); } return R.ok(areaVOList); } + /** * 获取最近20天数据 @@ -3728,6 +3803,7 @@ break; case "510402": name="东区"; + break; case "510411": name="仁和区"; break; @@ -3737,6 +3813,9 @@ case "510422": name="盐边县"; break; + case "510424": + name="钒钛新区"; + break; } return name; } @@ -3745,6 +3824,7 @@ *根据type选择要设置的名称 * */ private String typeToName(Integer type,UserProportion proportion){ + log.info("当前code"+proportion.getAreaCode()); String name=""; if (type.equals(ALLCOUNTY)){ name=areaCodeToName(proportion.getAreaCode()); @@ -3776,11 +3856,12 @@ * */ private List<Integer> areaCodeList(){ List<Integer> list=new ArrayList<>(); - list.add(510423); list.add(510402); + list.add(510423); list.add(510411); list.add(510421); list.add(510422); + list.add(510424); return list; } @@ -3803,6 +3884,73 @@ return null; } + /** + * 是否需要区分村落/社区 + * */ + private Integer isVilliage(String name){ + if ("fangyipingtai".equals(name)){ + return 3; + }else if ("pandashujuzhongxin".equals(name)){ + return 1; + }else if ("pannongyenongcunju".equals(name)){ + return 2; + } + return 3; + } + /** + * 是否为市级账号 + * */ + private Boolean isCityAccount(String name){ + if(("fangyipingtai").equals(name) || ("pandashujuzhongxin").equals(name) || ("pannongyenongcunju").equals(name)){ + return true; + } + return false; + } + + /** + * 是否为区级账号 + * */ + private Boolean isAreaAccount(String name){ + Boolean flag=false; + switch (name){ + case "dongqu": + case "xiqu": + case "renhequ": + case "miyixian": + case "yanbianxian": + flag=true; + break; + } + return flag; + } + + /** + * account转区areaCode + * */ + private Integer accountToCode(String code){ + String name="100000"; + switch (code){ + case "xiqu" : + name= "510423"; + break; + case "dongqu": + name="510402"; + break; + case "renhequ": + name="510411"; + break; + case "miyixian": + name="510421"; + break; + case "yanbianxian": + name="510422"; + break; + case "fantaixinqu": + name="510424"; + break; + } + return Integer.parseInt(name); + } } -- Gitblit v1.7.1