张天森
2022-07-18 cf60a875646dbaaa7932f93286d8e708ed79c6dc
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -13,6 +13,8 @@
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;
@@ -41,6 +43,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;
@@ -3445,22 +3448,26 @@
            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);
                }
            }
        }
        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);
@@ -3499,8 +3506,20 @@
        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));
@@ -3582,6 +3601,40 @@
            }
        }
        return R.ok();
    }
    @Override
    public R getCommunityList(Integer type) {
        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<StreetVO> streetVOS = userDao.selectStreetByAreaCode(code);
            Iterator<StreetVO> iterator = streetVOS.listIterator();
            while (iterator.hasNext()){
                StreetVO vo = iterator.next();
                List<CommunityVO> communityVOS = userDao.selectCommunityByStreetId(vo.getId(), type);
                vo.setCommunityList(communityVOS);
                if (type!=3){
                    if (communityVOS==null || communityVOS.size()==0){
                        iterator.remove();
                    }
                }
            }
            List<StreetVOS> list=new ArrayList<>();
            for (StreetVO streetVO : streetVOS) {
                StreetVOS vo=new StreetVOS();
                vo.setId(streetVO.getId());
                vo.setName(streetVO.getName());
                vo.setChildList(streetVO.getCommunityList());
                list.add(vo);
            }
            areaVO.setChildList(list);
            areaVOList.add(areaVO);
        }
        return R.ok(areaVOList);
    }
    @Override
@@ -3713,6 +3766,7 @@
                break;
            case "510402":
                name="东区";
                break;
            case "510411":
                name="仁和区";
                break;
@@ -3722,6 +3776,9 @@
            case "510422":
                name="盐边县";
                break;
            case "510424":
                name="钒钛新区";
                break;
        }
        return name;
    }
@@ -3730,6 +3787,7 @@
     *根据type选择要设置的名称
     * */
    private String typeToName(Integer type,UserProportion proportion){
        log.info("当前code"+proportion.getAreaCode());
        String name="";
        if (type.equals(ALLCOUNTY)){
            name=areaCodeToName(proportion.getAreaCode());
@@ -3761,11 +3819,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;
    }