| | |
| | | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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); |
| | |
| | | @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)); |
| | |
| | | }); |
| | | 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()); |
| | |
| | | * @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("协议不存在"); |
| | | } |
| | |
| | | return R.ok(vo); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public R uuPush(String washPhone,String phone,String washName,Integer orderStatus) { |
| | | if(StringUtils.isNotEmpty(phone)){ |
| | |
| | | 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() { |
| | | List<Integer> areaCodeList=areaCodeList(); |
| | | List<AreaVO> areaVOList=new ArrayList<>(); |
| | |
| | | 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); |
| | |
| | | case "510422": |
| | | name="盐边县"; |
| | | break; |
| | | case "510424": |
| | | name="钒钛新区"; |
| | | break; |
| | | } |
| | | return name; |
| | | } |
| | |
| | | * */ |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |