From 0cf26c2fbb74f5260f05ad9bc9d4f46f1d609d0c Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期日, 24 七月 2022 14:07:53 +0800
Subject: [PATCH] bug修改

---
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java |  127 +++++++++++++++++++++---------------------
 1 files changed, 64 insertions(+), 63 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 1f41811..daeb6a8 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
@@ -105,6 +105,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 +301,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 +310,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 +338,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 +689,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 +705,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 +1715,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);
     }
 
@@ -3445,33 +3407,39 @@
             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) {
@@ -3496,14 +3464,44 @@
         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);
     }
 
@@ -3530,6 +3528,7 @@
         vo.setActiveUserY(activeY);
         return R.ok(vo);
     }
+
 
     @Override
     public R uuPush(String washPhone,String phone,String washName,Integer orderStatus) {
@@ -3562,7 +3561,6 @@
         }
         return R.ok();
     }
-
     @Override
     public R getAreaAndStreet() {
         List<Integer> areaCodeList=areaCodeList();
@@ -3576,6 +3574,7 @@
         }
         return R.ok(areaVOList);
     }
+
 
     /**
      * 获取最近20天数据
@@ -3692,6 +3691,7 @@
                 break;
             case "510402":
                 name="东区";
+                break;
             case "510411":
                 name="仁和区";
                 break;
@@ -3709,6 +3709,7 @@
      *根据type选择要设置的名称
      * */
     private String typeToName(Integer type,UserProportion proportion){
+        log.info("当前code"+proportion.getAreaCode());
         String name="";
         if (type.equals(ALLCOUNTY)){
             name=areaCodeToName(proportion.getAreaCode());

--
Gitblit v1.7.1