From 2b6c540c6b20e04f8b2a05e6f0c22ba5d5016364 Mon Sep 17 00:00:00 2001
From: manailin <261030956@qq.com>
Date: 星期六, 24 九月 2022 14:09:50 +0800
Subject: [PATCH] Merge branch 'huacheng_test' of http://gitlab.nhys.cdnhxx.com/root/zhihuishequ into huacheng_test

---
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java |  319 +++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 214 insertions(+), 105 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 3753f8e..61a13c0 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
@@ -2,7 +2,6 @@
 
 import static java.util.Objects.isNull;
 import static java.util.Objects.nonNull;
-import static org.apache.commons.lang3.StringUtils.capitalize;
 import static org.apache.commons.lang3.StringUtils.isNotBlank;
 
 import java.math.BigDecimal;
@@ -13,16 +12,14 @@
 
 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 com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO;
 import com.panzhihua.common.model.vos.community.ComAreaTownCommunityVO;
@@ -43,7 +40,6 @@
 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;
@@ -99,7 +95,6 @@
 import com.panzhihua.service_user.model.dos.SysUserAgreementDO;
 import com.panzhihua.service_user.model.dos.SysUserDO;
 import com.panzhihua.service_user.model.dos.SysUserFeedbackDO;
-import com.panzhihua.service_user.model.dos.SysUserInputDO;
 import com.panzhihua.service_user.model.dos.SysUserNoticeDO;
 import com.panzhihua.service_user.model.dos.SysUserRoleDO;
 import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
@@ -205,7 +200,7 @@
      * @return token
      */
     @Override
-    public R updateInsertUser(String openid, String sessionKey, String unionid) {
+    public R updateInsertUser(String openid, String sessionKey, String unionid,String appId) {
         SysUserDO sysUserDO =
             userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getOpenid, openid));
         boolean empty = ObjectUtils.isEmpty(sysUserDO);
@@ -221,6 +216,7 @@
             sysUserDO1.setLastLoginTime(date);
             sysUserDO1.setPassword(encode);
             sysUserDO1.setType(1);
+            sysUserDO1.setAppId(appId);
             num = userDao.insert(sysUserDO1);
         } else {
             String encode = new BCryptPasswordEncoder().encode(UserConstants.PASSWORD);
@@ -229,6 +225,7 @@
             sysUserDO.setPassword(encode);
             sysUserDO.setLastLoginTime(date);
             sysUserDO.setType(1);
+            sysUserDO.setAppId(appId);
             num = userDao.updateById(sysUserDO);
         }
         if (num > 0) {
@@ -303,7 +300,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(
@@ -312,9 +309,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);
@@ -340,11 +337,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());
@@ -691,12 +688,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));
@@ -709,43 +704,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());
@@ -1253,6 +1211,7 @@
         String encode = new BCryptPasswordEncoder().encode(administratorsUserVO.getPassword());
         administratorsUserVO.setPassword(encode);
         BeanUtils.copyProperties(administratorsUserVO, sysUserDO);
+        sysUserDO.setAppId(administratorsUserVO.getAppid());
         int insert = 0;
         try {
             insert = userDao.insert(sysUserDO);
@@ -1756,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);
     }
 
@@ -2077,9 +2036,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("协议不存在");
         }
@@ -2293,14 +2252,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());
@@ -2947,7 +2912,7 @@
      */
     @Override
     public R dataKanBans(DataKanBansDto dataKanBansDto){
-        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(dataKanBansDto.getAreaCode());
+        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(dataKanBansDto.getAppId());
         List<String> communityUserX = new ArrayList<>();
         List<Integer> communityUserY = new ArrayList<>();
 
@@ -2965,9 +2930,9 @@
             page.setSize(20L);
         }
         if(dataKanBansDto.getType() != null && dataKanBansDto.getType().equals(DataKanBansDto.type.by)){
-            dataKanbanDTOS = userDao.selectCommunityUserOrderMonth(page, dataKanBansDto.getAreaCode()).getRecords();
+            dataKanbanDTOS = userDao.selectCommunityUserOrderMonth(page, dataKanBansDto.getAppId()).getRecords();
         }else{
-            dataKanbanDTOS = userDao.selectCommunityUserOrder(page, dataKanBansDto.getAreaCode()).getRecords();
+            dataKanbanDTOS = userDao.selectCommunityUserOrder(page, dataKanBansDto.getAppId()).getRecords();
         }
         if (!ObjectUtils.isEmpty(dataKanbanDTOS)) {
             dataKanbanDTOS.forEach(dataKanbanDTO -> {
@@ -2980,7 +2945,7 @@
         List<Date> serverndays = com.panzhihua.common.utlis.DateUtils.getOldDays();
         serverndays.forEach(date -> {
             // 查询社区活动数量
-            DataKanbanDTO dataKanbanDTO = userDao.selectCommunityAddUserOrder(dataKanBansDto.getAreaCode(),date);
+            DataKanbanDTO dataKanbanDTO = userDao.selectCommunityAddUserOrder(dataKanBansDto.getAppId(),date);
             communityActiveUserX.add(DateFormatUtils.format(date, "MM-dd"));
             communityActiveUserY.add(dataKanbanDTO.getNum());
             communityActiveUserZ.add(dataKanbanDTO.getDayNum());
@@ -3319,7 +3284,7 @@
         }
         Map<String, String> headerMap=new HashMap<>();
         headerMap.put("appid","10000");
-        String resultJson=HttpClientUtil.get("https://api.uucsh.cn/member/wx/get-access?province="+uuLoginVO.getProvince()+"&city="+uuLoginVO.getCity()+"&area="+uuLoginVO.getArea()+"&appid=10000&timestamp="+uuLoginVO.getTimestamp()+"&sign="+uuLoginVO.getSign()+"&mobile="+uuLoginVO.getMobile(),headerMap,null);
+        String resultJson=HttpClientUtil.get("https://api.uucsh.cn/member/wx/get-access?province="+uuLoginVO.getProvince()+"&city="+uuLoginVO.getCity()+"&area="+uuLoginVO.getArea()+"&appid=10000&timestamp="+uuLoginVO.getTimestamp()+"&sign="+uuLoginVO.getSign()+"&mobile="+uuLoginVO.getMobile()+"&couponId="+uuLoginVO.getCouponId(),headerMap,null);
         JSONObject result = JSON.parseObject(resultJson);
         if(result.get("status").equals(1)){
             return R.ok(result.get("data"));
@@ -3336,8 +3301,8 @@
     }
 
     @Override
-    public R newIndexData(Integer type, Long streetId,Long areaCode) {
-        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(null);
+    public R newIndexData(Integer type, Long streetId,Long areaCode,String appId) {
+        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(appId);
         IndexDataAnalysisVO vo=new IndexDataAnalysisVO();
         if (ObjectUtils.isEmpty(type)){
             //不传默认为所有区县
@@ -3418,7 +3383,7 @@
     }
 
     @Override
-    public R userRate(Integer type, Long streetId, Long areaCode, Integer range) {
+    public R userRate(Integer type, Long streetId, Long areaCode, Integer range,String appId) {
         IndexDataAnalysisVO analysisVO=new IndexDataAnalysisVO();
         if (type.equals(BYSTREET) || type.equals(BYAREA)){
             //街道,区县筛选
@@ -3426,7 +3391,7 @@
             BeanUtils.copyProperties(indexDataVO,analysisVO );
         }else {
             //总量数据
-            IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(null);
+            IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(appId);
             BeanUtils.copyProperties(indexDataKanbanVO,analysisVO );
         }
         String date="";
@@ -3436,7 +3401,7 @@
                 date = DateUtil.parse(dateTime.toString(), "yyyy-MM-dd HH:mm:ss").toString();
             }
         }
-        List<UserProportion> userProportions = userDao.userAnalysis(type, date, streetId,areaCode);
+        List<UserProportion> userProportions = userDao.userAnalysis(type, date, streetId,areaCode,appId);
         List<UserRateAnalysisVO> userRateAnalysisVOList=new ArrayList<>();
         Boolean monthRange=false;
         if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(range)){
@@ -3454,7 +3419,7 @@
                         }
                         //获取本月的用户总数作为计算占比的用户总数
                         //IndexDataKanbanVO data = userDao.dataKanBanStreet(streetId, areaCode, date);
-                        Integer monthUsers = userDao.getMonthUsers(streetId, areaCode, date);
+                        Integer monthUsers = userDao.getMonthUsers(streetId, areaCode, date,appId);
                         vo.setRate(getRate(monthUsers,userProportion.getUser()));
                     }else{
                         vo.setRate(getRate(analysisVO.getAllUser(),userProportion.getUser()));
@@ -3482,9 +3447,8 @@
         return R.ok(userRate);
     }
 
-
     @Override
-    public R realUser(Integer type, Long streetId, Long areaCode, Integer range) {
+    public R realUser(Integer type, Long streetId, Long areaCode, Integer range,String appId) {
         IndexDataAnalysisVO analysisVO=new IndexDataAnalysisVO();
         if (type.equals(BYSTREET) || type.equals(BYAREA)){
             //街道,区县筛选
@@ -3492,7 +3456,7 @@
             BeanUtils.copyProperties(indexDataVO,analysisVO );
         }else {
             //总量数据
-            IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(null);
+            IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(appId);
             BeanUtils.copyProperties(indexDataKanbanVO,analysisVO );
         }
         String date="";
@@ -3503,7 +3467,7 @@
             }
         }
         RealUserVO realUserVO=new RealUserVO();
-        List<RealUser> realUsers = userDao.realUserCount(type, date, streetId, areaCode);
+        List<RealUser> realUsers = userDao.realUserCount(type, date, streetId, areaCode,appId);
         List<RealUserAnalysisVO> realUserList=new ArrayList<>();
         realUserVO.setRealUserCount(getStreetRealUser(realUsers));
         Integer rate = getRate(analysisVO.getAllUser(), realUserVO.getRealUserCount());
@@ -3548,7 +3512,7 @@
     }
 
     @Override
-    public R userActivity(Integer type, Long streetId, Long areaCode, Integer range) {
+    public R userActivity(Integer type, Long streetId, Long areaCode, Integer range, String appId) {
         UserActivityAnalysisVO vo=new UserActivityAnalysisVO();
         List<Date> activeX=getTwentyDays();
         List<String> activeY=new ArrayList<>();
@@ -3561,7 +3525,7 @@
         }
         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
         for (Date date : activeX) {
-            Map<String, Long> map = userDao.getDailyAddAndActive(DateUtil.parse(sdf.format(date)), streetId,areaCode);
+            Map<String, Long> map = userDao.getDailyAddAndActive(DateUtil.parse(sdf.format(date)), streetId,areaCode, appId);
             adY.add(map.get("addUser").toString());
             activeY.add(map.get("activeUser").toString());
         }
@@ -3574,7 +3538,7 @@
     @Override
     public R uuPush(String washPhone,String phone,String washName,Integer orderStatus) {
         if(StringUtils.isNotEmpty(phone)){
-            SysUserDO sysUserDO=userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone,phone).orderByDesc(SysUserDO::getCreateAt).last("limit 1"));
+            SysUserDO sysUserDO=userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone,phone).eq(SysUserDO::getAppId,"wx118de8a734d269f0").orderByDesc(SysUserDO::getCreateAt).last("limit 1"));
             if(sysUserDO!=null&&StringUtils.isNotEmpty(sysUserDO.getOpenid())){
                 String status="";
                 String accessToken="";
@@ -3602,40 +3566,117 @@
         }
         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();
+    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);
             }
-            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);
+            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);
+                }
             }
-            areaVO.setChildList(list);
-            areaVOList.add(areaVO);
         }
-        return R.ok(areaVOList);
+        return R.ok(null);
     }
+
+    @Override
+    public R resetPassword(Integer type, String account,String appId) {
+        SysUserDO sysUserDO=userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount,account).eq(SysUserDO::getType,type).eq(SysUserDO::getAppId,appId));
+        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 accept(Long userId) {
+        SysUserDO sysUserDO=new SysUserDO();
+        sysUserDO.setUserId(userId);
+        sysUserDO.setIsAccept(1);
+        userDao.updateById(sysUserDO);
+        return R.ok();
+    }
+
 
     @Override
     public R getAreaAndStreet() {
@@ -3645,11 +3686,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天数据
@@ -3847,6 +3889,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