| | |
| | | |
| | | 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; |
| | | |
| | |
| | | * @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( |
| | |
| | | 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); |
| | |
| | | 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()); |
| | |
| | | @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 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); |
| | | } |
| | | |
| | |
| | | for (UserProportion userProportion : userProportions) { |
| | | if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(userProportion)){ |
| | | UserRateAnalysisVO vo=new UserRateAnalysisVO(); |
| | | vo.setName(typeToName(type,userProportion )); |
| | | if (monthRange){ |
| | | if (userProportion.getCommunityId().equals("11")){ |
| | | continue; |
| | | } |
| | | //获取本月的用户总数作为计算占比的用户总数 |
| | | IndexDataKanbanVO data = userDao.dataKanBanStreet(streetId, areaCode, date); |
| | | vo.setRate(getRate(data.getAllUser(),userProportion.getUser())); |
| | | //IndexDataKanbanVO data = userDao.dataKanBanStreet(streetId, areaCode, date); |
| | | Integer monthUsers = userDao.getMonthUsers(streetId, areaCode, date); |
| | | vo.setRate(getRate(monthUsers,userProportion.getUser())); |
| | | }else{ |
| | | vo.setRate(getRate(analysisVO.getAllUser(),userProportion.getUser())); |
| | | } |
| | | vo.setName(typeToName(type,userProportion )); |
| | | vo.setCount(userProportion.getUser()); |
| | | userRateAnalysisVOList.add(vo); |
| | | } |
| | | } |
| | | } |
| | | //计算其他用户占比 |
| | | final Boolean flag=(type.equals(ALLSTREET) || type.equals(ALLCOMMUNITY) || type.equals(BYSTREET) || type.equals(BYAREA)); |
| | | if (flag){ |
| | | UserRateAnalysisVO vo=new UserRateAnalysisVO(); |
| | | vo.setName(OTHERUSER); |
| | | vo.setCount(analysisVO.getAllUser()-countUser(userRateAnalysisVOList)); |
| | | vo.setRate(getRate(analysisVO.getAllUser(), vo.getCount())); |
| | | userRateAnalysisVOList.add(vo); |
| | | if (ObjectUtils.isEmpty(range)){ |
| | | //查看累计数据时才计算其他用户的比例 || type.equals(BYSTREET) || type.equals(BYAREA)) |
| | | final Boolean flag=(type.equals(ALLSTREET) || type.equals(ALLCOMMUNITY)); |
| | | if (flag){ |
| | | UserRateAnalysisVO vo=new UserRateAnalysisVO(); |
| | | vo.setName(OTHERUSER); |
| | | vo.setCount(analysisVO.getAllUser()-countUser(userRateAnalysisVOList)); |
| | | vo.setRate(getRate(analysisVO.getAllUser(), vo.getCount())); |
| | | userRateAnalysisVOList.add(vo); |
| | | } |
| | | } |
| | | //计算其他用户占比 |
| | | UserRateVO userRate=new UserRateVO(); |
| | | userRate.setUserList(userRateAnalysisVOList); |
| | | return R.ok(userRate); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public R realUser(Integer type, Long streetId, Long areaCode, Integer range) { |
| | |
| | | List<RealUser> realUsers = userDao.realUserCount(type, date, streetId, areaCode); |
| | | List<RealUserAnalysisVO> realUserList=new ArrayList<>(); |
| | | realUserVO.setRealUserCount(getStreetRealUser(realUsers)); |
| | | realUserVO.setRealUserRate(NumberUtil.div(realUserVO.getRealUserCount(), analysisVO.getAllUser()).doubleValue()); |
| | | Integer rate = getRate(analysisVO.getAllUser(), realUserVO.getRealUserCount()); |
| | | if (null == rate){ |
| | | realUserVO.setRealUserRate(0.0); |
| | | }else{ |
| | | realUserVO.setRealUserRate(rate.doubleValue()); |
| | | } |
| | | for (RealUser realUser : realUsers) { |
| | | if (!(type.equals(ALLCOUNTY))){ |
| | | if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUser)){ |
| | | if (realUser.getCommunityId().equals("11")){ |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | RealUserAnalysisVO vo=new RealUserAnalysisVO(); |
| | | vo.setCount(realUser.getCount()); |
| | | vo.setName(typeToNameRealUser(type, realUser)); |
| | | realUserList.add(vo); |
| | | } |
| | | realUserVO.setRealUserList(realUserList); |
| | | //使用索引迭代避免从列表移除数据后出现空指针异常 |
| | | if (type.equals(BYSTREET) || type.equals(ALLCOMMUNITY)){ |
| | | for (int i = 0; i < realUserList.size() ; i++) { |
| | | RealUserAnalysisVO realUserAnalysisVO = realUserList.get(i); |
| | | if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUserAnalysisVO)){ |
| | | if (StringUtils.isNotEmpty(realUserAnalysisVO.getName())){ |
| | | if (realUserAnalysisVO.getName().equals("请选择社区")){ |
| | | realUserList.remove(i); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }else { |
| | | //只保留十条 |
| | | if (realUserList.size()>=11){ |
| | | realUserList.remove(10); |
| | | } |
| | | } |
| | | return R.ok(realUserVO); |
| | | } |
| | | |
| | |
| | | vo.setActiveUserY(activeY); |
| | | return R.ok(vo); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public R uuPush(String washPhone,String phone,String washName,Integer orderStatus) { |
| | |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | @Override |
| | | public R getAreaAndStreet() { |
| | | List<Integer> areaCodeList=areaCodeList(); |
| | |
| | | } |
| | | return R.ok(areaVOList); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取最近20天数据 |
| | |
| | | break; |
| | | case "510402": |
| | | name="东区"; |
| | | break; |
| | | case "510411": |
| | | name="仁和区"; |
| | | break; |
| | |
| | | *根据type选择要设置的名称 |
| | | * */ |
| | | private String typeToName(Integer type,UserProportion proportion){ |
| | | log.info("当前code"+proportion.getAreaCode()); |
| | | String name=""; |
| | | if (type.equals(ALLCOUNTY)){ |
| | | name=areaCodeToName(proportion.getAreaCode()); |