From dad5e5fd2abbf5d77d23f1b9a4500a9ae9bf274d Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期五, 14 一月 2022 13:27:45 +0800
Subject: [PATCH] 仁和东区代码提交

---
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java |  277 ++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 193 insertions(+), 84 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 cedecbf..99c1530 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
@@ -3,7 +3,6 @@
 import static java.util.Objects.isNull;
 import static java.util.Objects.nonNull;
 
-import java.time.Instant;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -15,6 +14,9 @@
 
 import javax.annotation.Resource;
 
+import com.panzhihua.service_user.dao.*;
+import com.panzhihua.service_user.entity.SysAppConfig;
+import com.panzhihua.service_user.entity.SysTemplateConfig;
 import org.apache.commons.lang.time.DateFormatUtils;
 import org.apache.commons.lang.time.DateUtils;
 import org.springframework.beans.BeanUtils;
@@ -33,6 +35,7 @@
 import com.panzhihua.common.constants.Constants;
 import com.panzhihua.common.constants.UserConstants;
 import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.DataKanBansDto;
 import com.panzhihua.common.model.dtos.PageDTO;
 import com.panzhihua.common.model.dtos.community.ExportUserDTO;
 import com.panzhihua.common.model.dtos.community.NoticeReadDTO;
@@ -57,6 +60,9 @@
 import com.panzhihua.common.model.vos.SystemmanagementConfigVO;
 import com.panzhihua.common.model.vos.community.ComActVO;
 import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
+import com.panzhihua.common.model.vos.community.IndexUserCommunityVo;
+import com.panzhihua.common.model.vos.community.IndexUserStatisticsVo;
+import com.panzhihua.common.model.vos.community.IndexUserStreetVo;
 import com.panzhihua.common.model.vos.grid.GridMemberVO;
 import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO;
 import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO;
@@ -82,20 +88,7 @@
 import com.panzhihua.common.utlis.StringUtils;
 import com.panzhihua.common.utlis.WxUtil;
 import com.panzhihua.common.utlis.WxXCXTempSend;
-import com.panzhihua.service_user.dao.ComMngFamilyInfoDAO;
-import com.panzhihua.service_user.dao.ComMngUserTagDAO;
-import com.panzhihua.service_user.dao.EventGridMemberBuildingRelationMapper;
-import com.panzhihua.service_user.dao.LcCompareMemberCodeMapper;
-import com.panzhihua.service_user.dao.RoleDAO;
-import com.panzhihua.service_user.dao.SysMenuDAO;
-import com.panzhihua.service_user.dao.SysOperLogDAO;
-import com.panzhihua.service_user.dao.SysRoleMenuDAO;
-import com.panzhihua.service_user.dao.SysUserAgreementDAO;
-import com.panzhihua.service_user.dao.SysUserFeedbackDAO;
-import com.panzhihua.service_user.dao.SysUserInputDAO;
-import com.panzhihua.service_user.dao.SysUserNoticeDAO;
-import com.panzhihua.service_user.dao.SysUserRoleDAO;
-import com.panzhihua.service_user.dao.UserDao;
+import com.panzhihua.service_user.model.dos.ComActFourMember;
 import com.panzhihua.service_user.model.dos.ComMngFamilyInfoDO;
 import com.panzhihua.service_user.model.dos.ComMngUserTagDO;
 import com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO;
@@ -114,6 +107,7 @@
 import com.panzhihua.service_user.service.EventGridMemberBuildingRelationService;
 import com.panzhihua.service_user.service.UserService;
 
+import cn.hutool.core.util.IdcardUtil;
 import lombok.extern.slf4j.Slf4j;
 
 // import com.panzhihua.common.service.grid.GridService;
@@ -159,6 +153,12 @@
     private EventGridMemberBuildingRelationMapper eventGridMemberBuildingRelationMapper;
     @Resource
     private LcCompareMemberCodeMapper lcCompareMemberCodeMapper;
+    @Resource
+    private ComActFourMemberDao comActFourMemberDao;
+    @Resource
+    private SysAppConfigDao sysAppConfigDao;
+    @Resource
+    private SysTemplateConfigDao sysTemplateConfigDao;
     // @Resource
     // private GridService gridService;
 
@@ -310,7 +310,16 @@
         loginUserInfoVO.setType(sysUserDO.getType());
         loginUserInfoVO.setIsRealNamed(sysUserDO.getIdCard() != null);// 暂时 身份证判断实名制
         if(sysUserDO.getCommunityId()!=null){
+            ComActVO comActVO = userDao.selectCommunity(sysUserDO.getCommunityId());
             loginUserInfoVO.setCommunityId(sysUserDO.getCommunityId());
+            if(comActVO!=null){
+                loginUserInfoVO.setComActVO(comActVO);
+                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());
         Set<String> set = new HashSet<>();
@@ -347,6 +356,9 @@
             loginUserInfoVO.setRoles(set);
         }
         loginUserInfoVO.setIsmemberrole(2);
+        loginUserInfoVO.setIsFourMember(2);
+        loginUserInfoVO.setIsCommunityWorker(2);
+        loginUserInfoVO.setIsPropertyWorker(2);
         // 志愿者状态
         String phone = sysUserDO.getPhone();
         Long userCommunityId = sysUserDO.getCommunityId();
@@ -354,6 +366,12 @@
             ComActVO comActVO = userDao.selectCommunity(userCommunityId);
             if (comActVO != null) {
                 loginUserInfoVO.setCommunityName(comActVO.getName());
+                loginUserInfoVO.setComActVO(comActVO);
+                SysAppConfig sysAppConfig=sysAppConfigDao.selectOne(new QueryWrapper<SysAppConfig>().lambda().eq(SysAppConfig::getAreaCode,comActVO.getAreaCode()));
+                if(sysAppConfig!=null){
+                    loginUserInfoVO.setAppId(sysAppConfig.getAppId());
+                    loginUserInfoVO.setAppSecret(sysAppConfig.getSecret());
+                }
             }
         }
         if (!ObjectUtils.isEmpty(phone)) {
@@ -364,12 +382,23 @@
                 int state = comMngVolunteerMngVO.getState().intValue();
                 loginUserInfoVO.setVolunteerStatus(state);
             }
+            //是否四长四员
+            Integer countFourMember=comActFourMemberDao.selectCount(new QueryWrapper<ComActFourMember>().lambda().eq(ComActFourMember::getIdCard,sysUserDO.getIdCard()));
+            if(countFourMember>0){
+                loginUserInfoVO.setIsFourMember(1);
+            }
+            //是否是社区物业人员
+            int countPropertyWorker = userDao.countPropertyWorker(Long.parseLong(userId), userCommunityId);
+            if (countPropertyWorker > 0) {
+                loginUserInfoVO.setIsPropertyWorker(1);
+            }
             // 是否是"管理员"或者 本社区 "社区团队"、"党委成员"
             Integer countTeam = userDao.selectCountTeam(phone, userCommunityId);
             Integer selectCountMemberRole = userDao.selectCountMemberRole(phone, userCommunityId);
             Integer isSysUser = userDao.selectCountSysUser(phone, userCommunityId);
             if (countTeam != null && countTeam > 0) {
                 loginUserInfoVO.setIsmemberrole(1);
+                loginUserInfoVO.setIsCommunityWorker(1);
             } else if (selectCountMemberRole != null && selectCountMemberRole > 0) {
                 loginUserInfoVO.setIsmemberrole(1);
             } else if (isSysUser != null && isSysUser > 0) {
@@ -576,7 +605,8 @@
     @Override
     public R listTag() {
         List<String> list = new ArrayList<>();
-        List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new LambdaQueryWrapper<>());
+        List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new LambdaQueryWrapper<ComMngUserTagDO>()
+                .eq(ComMngUserTagDO::getSysFlag,1));
         if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
             list = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                 .collect(Collectors.toList());
@@ -599,6 +629,7 @@
             if (ObjectUtils.isEmpty(sysUserDO)) {
                 return R.fail("人员不存在");
             }
+
             BeanUtils.copyProperties(sysUserDO, loginUserInfoVO);
             List<ComMngFamilyInfoDO> comMngFamilyInfoDOS = comMngFamilyInfoDAO
                 .selectList(new QueryWrapper<ComMngFamilyInfoDO>().lambda().eq(ComMngFamilyInfoDO::getUserId, userId));
@@ -652,6 +683,9 @@
         if (!ObjectUtils.isEmpty(comActVO)) {
             loginUserInfoVO.setCommunityName(comActVO.getName());
         }
+        //是否是社区物业人员
+        int countPropertyWorker = userDao.countPropertyWorker(userId, loginUserInfoVO.getCommunityId());
+        loginUserInfoVO.setIsPropertyWorker(countPropertyWorker > 0 ? 1 : 0);
         loginUserInfoVO.setIdCard(SensitiveUtil.desensitizedIdNumber(loginUserInfoVO.getIdCard()));
         loginUserInfoVO.setPhone(SensitiveUtil.desensitizedPhoneNumber(loginUserInfoVO.getPhone()));
         return R.ok(loginUserInfoVO);
@@ -799,7 +833,7 @@
         sysUserDO.setIdCard(idCard);
         // 通过身份证号判断性别以及出生日期
         sysUserDO.setSex(IdCard.sex(idCard));
-        sysUserDO.setBirthday(IdCard.birthDay(idCard));
+        sysUserDO.setBirthday(IdcardUtil.getBirthDate(idCard));
         if (!StringUtils.isEmpty(loginUserInfoVO.getJob())) {
             sysUserDO.setJob(loginUserInfoVO.getJob());
         }
@@ -834,9 +868,10 @@
                 try {
                     WxXCXTempSend util = new WxXCXTempSend();
                     String accessToken = util.getAppAccessToken();
+                    SysTemplateConfig sysTemplateConfig=sysTemplateConfigDao.selectOne(new QueryWrapper<SysTemplateConfig>().lambda().eq(SysTemplateConfig::getAreaCode, loginUserInfoVO.getComActVO()).eq(SysTemplateConfig::getType,5));
                     // 用户实名认证推送消息
                     WxUtil.sendSubscribeRZSH(user.getOpenid(), accessToken, "实名认证",
-                        com.panzhihua.common.utlis.DateUtils.getCurrentDateStr(), "认证成功");
+                        com.panzhihua.common.utlis.DateUtils.getCurrentDateStr(), "认证成功",sysTemplateConfig.getTemplateId());
                 } catch (Exception e) {
                     log.error("推送用户订阅消息失败,失败原因:" + e.getMessage());
                 }
@@ -1203,19 +1238,28 @@
 
         // 获取所有权限id
         List<SysMenuDO> menuDOList = sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda()
-            .eq(SysMenuDO::getCommunityId, 2l).orderByAsc(SysMenuDO::getOrderNum));
+            .eq(SysMenuDO::getCommunityId, 2L).orderByAsc(SysMenuDO::getOrderNum));
         if (!menuDOList.isEmpty()) {
             menuIds = menuDOList.stream().map(sysMenuDO -> sysMenuDO.getMenuId()).collect(Collectors.toList());
-            for (int i = 0; i < menuIds.size(); i++) {
-                SysRoleMenuDO sysRoleMenuDO = sysRoleMenuDAO.selectOne(new QueryWrapper<SysRoleMenuDO>().lambda()
-                    .eq(SysRoleMenuDO::getMenuId, menuIds.get(i)).eq(SysRoleMenuDO::getRoleId, roleId));
-                if (sysRoleMenuDO == null) {
-                    sysRoleMenuDO = new SysRoleMenuDO();
-                    sysRoleMenuDO.setMenuId(menuIds.get(i));
-                    sysRoleMenuDO.setRoleId(roleId);
-                    sysRoleMenuDAO.insert(sysRoleMenuDO);
-                }
+
+            List<SysRoleMenuDO> sysRoleMenuDOList = sysRoleMenuDAO.selectList(new QueryWrapper<SysRoleMenuDO>().lambda().eq(SysRoleMenuDO::getRoleId, roleId).in(SysRoleMenuDO::getMenuId, menuIds));
+            if (!sysRoleMenuDOList.isEmpty()) {
+                menuIds = menuIds.stream().filter(menuId -> !sysRoleMenuDOList.stream()
+                        .anyMatch(sysRoleMenuDO -> sysRoleMenuDO.getMenuId().equals(menuId))).collect(Collectors.toList());
             }
+            if (!menuIds.isEmpty()) {
+                sysRoleMenuDAO.batchInsertWithRoleId(menuIds, roleId);
+            }
+//            for (int i = 0; i < menuIds.size(); i++) {
+//                SysRoleMenuDO sysRoleMenuDO = sysRoleMenuDAO.selectOne(new QueryWrapper<SysRoleMenuDO>().lambda()
+//                    .eq(SysRoleMenuDO::getMenuId, menuIds.get(i)).eq(SysRoleMenuDO::getRoleId, roleId));
+//                if (sysRoleMenuDO == null) {
+//                    sysRoleMenuDO = new SysRoleMenuDO();
+//                    sysRoleMenuDO.setMenuId(menuIds.get(i));
+//                    sysRoleMenuDO.setRoleId(roleId);
+//                    sysRoleMenuDAO.insert(sysRoleMenuDO);
+//                }
+//            }
         }
         return R.ok();
     }
@@ -1671,9 +1715,9 @@
      * @return 展示数据
      */
     @Override
-    public R dataKanban() {
-        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban();
-        List<DataKanbanDTO> dataKanbanDTOS = userDao.selectCommunityUserOrder();
+    public R dataKanban(String areaCode) {
+        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(areaCode);
+        List<DataKanbanDTO> dataKanbanDTOS = userDao.selectCommunityUserOrder(areaCode);
 
         List<String> communityUserX = new ArrayList<>();
         List<Integer> communityUserY = new ArrayList<>();
@@ -2069,7 +2113,7 @@
     @Override
     public R editSysUser(ShopStoreVO storeVO) {
         SysUserDO sysUserDO1 = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda()
-            .eq(SysUserDO::getPhone, storeVO.getPhone()).eq(SysUserDO::getType, 5));
+            .eq(SysUserDO::getPhone, storeVO.getStoreAccount()).eq(SysUserDO::getType, 5));
         if (sysUserDO1 == null) {
             return R.fail("未查询到后台管理用户!");
         }
@@ -2168,7 +2212,6 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public R addGridUser(EventGridMemberAddDTO eventGridMemberAddDTO) {
-        //todo 网格
         SysRoleDO gridMemberDefaultRole = roleDAO.selectOne(
             new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, Constants.GRID_DEFAULT_ROLE_KEY));
         if (gridMemberDefaultRole == null) {
@@ -2591,63 +2634,28 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public R addConvenientMerchantUser(ConvenientMerchantDTO convenientMerchantDTO) {
-        // todo 便民
-        log.error("catTimeStamp进入addConvenientMerchantUser", Instant.now().toEpochMilli());
-        SysUserDO sysUserDO = new SysUserDO();
-        Long communityId = 0L;
-        // 新增社区高级管理员角色
-        SysRoleDO sysRoleDO = new SysRoleDO();
-        sysRoleDO.setCommunityId(communityId);
-        sysRoleDO.setRoleName(convenientMerchantDTO.getName());
-        sysRoleDO.setRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + convenientMerchantDTO.getAccount());
-        sysRoleDO.setRoleSort(0);
-        sysRoleDO.setCreateBy(convenientMerchantDTO.getCreatedBy());
-        try {
-            int insert = roleDAO.insert(sysRoleDO);
-            if (insert != 1) {
-                return R.fail("网络错误");
-            }
-        } catch (Exception e) {
-            log.error("新增角色报错【{}】", e.getMessage());
-            if (e.getMessage().contains("unique_role_name_community_id")) {
-                return R.fail("商家名称已被占用");
-            } else {
-                return R.fail("建立商家角色失败,商家名称可能已被占用!");
-            }
+        SysUserDO sysUserDO;
+        sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, convenientMerchantDTO.getAccount()));
+        if (nonNull(sysUserDO)) {
+            return R.fail("账户已经存在");
         }
-        log.error("catTimeStamp-SysRoleDO创建完成", Instant.now().toEpochMilli());
-        // 新角色设置所有权限
-        MenuRoleVO menuRoleVO = new MenuRoleVO();
-        menuRoleVO.setIsAll(1);
-        menuRoleVO.setCommunityId(communityId);
-        menuRoleVO.setRoleId(sysRoleDO.getRoleId());
-        this.putMenuRole(menuRoleVO);
-
-        log.error("catTimeStamp-MenuRoleVO创建完成", Instant.now().toEpochMilli());
-
         // sys_user 表
+        sysUserDO = new SysUserDO();
         String encode = new BCryptPasswordEncoder().encode(convenientMerchantDTO.getPassword());
         BeanUtils.copyProperties(convenientMerchantDTO, sysUserDO);
         sysUserDO.setAccount(convenientMerchantDTO.getAccount());
         sysUserDO.setType(10);
         sysUserDO.setAreaId(null);
         sysUserDO.setStatus(1);
-        sysUserDO.setPhone(convenientMerchantDTO.getPhone());
+        sysUserDO.setPhone(null);
         sysUserDO.setName(convenientMerchantDTO.getContacts());
         sysUserDO.setPassword(encode);
         try {
             userDao.insert(sysUserDO);
-            log.error("catTimeStamp-sysUserDO创建完成", Instant.now().toEpochMilli());
             return R.ok(sysUserDO.getUserId());
         } catch (Exception e) {
             e.printStackTrace();
             log.error("新增后台用户报错【{}】", e.getMessage());
-            roleDAO.deleteByRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + convenientMerchantDTO.getAccount());
-            if (e.getMessage().contains("union_phone_type")) {
-                return R.fail("手机号已经存在");
-            } else if (e.getMessage().contains("union_account_type")) {
-                return R.fail("账户已经存在");
-            }
         }
         return R.fail("新增商户发生错误");
     }
@@ -2664,19 +2672,36 @@
         if (isNull(sysUserDO)) {
             return R.fail("用户不存在");
         }
-        String oldAccount = sysUserDO.getAccount();
         sysUserDO.setAccount(account);
-        int result = userDao.updateById(sysUserDO);
-        if (result > 0) {
-            SysRoleDO sysRoleDO = roleDAO.selectOne(new QueryWrapper<SysRoleDO>()
-                    .lambda().eq(SysRoleDO::getRoleKey, Constants.CONVENIENT_MERCHANT_ROLE_KEY + oldAccount));
-            if (nonNull(sysRoleDO)) {
-                sysRoleDO.setRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + account);
-                roleDAO.updateById(sysRoleDO);
-            }
-        }
+        userDao.updateById(sysUserDO);
         return R.ok();
     }
+
+    // /**
+    //  * 修改便民服务商家绑定账号
+    //  * @param userId 用户id
+    //  * @param account 修改账户
+    //  * @return 修改结果
+    //  */
+    // @Override
+    // public R putUserAccount(Long userId, String account) {
+    //     SysUserDO sysUserDO = userDao.selectById(userId);
+    //     if (isNull(sysUserDO)) {
+    //         return R.fail("用户不存在");
+    //     }
+    //     String oldAccount = sysUserDO.getAccount();
+    //     sysUserDO.setAccount(account);
+    //     int result = userDao.updateById(sysUserDO);
+    //     if (result > 0) {
+    //         SysRoleDO sysRoleDO = roleDAO.selectOne(new QueryWrapper<SysRoleDO>()
+    //                 .lambda().eq(SysRoleDO::getRoleKey, Constants.CONVENIENT_MERCHANT_ROLE_KEY + oldAccount));
+    //         if (nonNull(sysRoleDO)) {
+    //             sysRoleDO.setRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + account);
+    //             roleDAO.updateById(sysRoleDO);
+    //         }
+    //     }
+    //     return R.ok();
+    // }
 
     @Override
     public R disableOrEnableMerchantUsers(DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO) {
@@ -2698,4 +2723,88 @@
             }
         }
     }
+
+    /**
+     * 数据看板升级版
+     *
+     * @return 运营后台数据看板升级版
+     */
+    @Override
+    public R dataKanBans(DataKanBansDto dataKanBansDto){
+        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(dataKanBansDto.getAreaCode());
+        List<String> communityUserX = new ArrayList<>();
+        List<Integer> communityUserY = new ArrayList<>();
+
+        List<String> communityActiveUserX = new ArrayList<>();
+        List<Integer> communityActiveUserY = new ArrayList<>();
+        List<Integer> communityActiveUserZ = new ArrayList<>();
+
+        List<DataKanbanDTO> dataKanbanDTOS = null;
+        if(dataKanBansDto.getType() != null && dataKanBansDto.getType().equals(DataKanBansDto.type.by)){
+            dataKanbanDTOS = userDao.selectCommunityUserOrderMonth(dataKanBansDto.getAreaCode());
+        }else{
+            dataKanbanDTOS = userDao.selectCommunityUserOrder(dataKanBansDto.getAreaCode());
+        }
+        if (!ObjectUtils.isEmpty(dataKanbanDTOS)) {
+            dataKanbanDTOS.forEach(dataKanbanDTO -> {
+                communityUserX.add(dataKanbanDTO.getName());
+                communityUserY.add(dataKanbanDTO.getNum());
+            });
+        }
+
+        // 获取最近二十天数据
+        List<Date> serverndays = com.panzhihua.common.utlis.DateUtils.getOldDays();
+        serverndays.forEach(date -> {
+            // 查询社区活动数量
+            DataKanbanDTO dataKanbanDTO = userDao.selectCommunityAddUserOrder(dataKanBansDto.getAreaCode(),date);
+            communityActiveUserX.add(DateFormatUtils.format(date, "MM-dd"));
+            communityActiveUserY.add(dataKanbanDTO.getNum());
+            communityActiveUserZ.add(dataKanbanDTO.getDayNum());
+        });
+        indexDataKanbanVO.setCommunityActiveUserX(communityActiveUserX);
+        indexDataKanbanVO.setCommunityAddUserY(communityActiveUserY);
+        indexDataKanbanVO.setCommunityActiveUserY(communityActiveUserZ);
+        indexDataKanbanVO.setCommunityUserX(communityUserX);
+        indexDataKanbanVO.setCommunityUserY(communityUserY);
+        return R.ok(indexDataKanbanVO);
+    }
+
+    /**
+     * 运营后台-用户数据统计汇总
+     * @return  用户数据统计汇总
+     */
+    @Override
+    public R communityStatistics(String areaCode){
+        //返回结果数据
+        IndexUserStatisticsVo userStatisticsVo = new IndexUserStatisticsVo();
+        //查询所有街道
+        List<IndexUserStreetVo> streetList = userDao.getUserStreetList(areaCode);
+        streetList.forEach(street -> {
+            List<IndexUserCommunityVo> communityList = userDao.getUserCommunityList(street.getStreetId());
+            street.setCommunityList(communityList);
+        });
+        userStatisticsVo.setStreetList(streetList);
+        return R.ok(userStatisticsVo);
+    }
+
+    @Override
+    public R communityStatisticsExport(String areaCode){
+        return R.ok(userDao.getUserCommunityExcelExport(areaCode));
+    }
+
+    /**
+     * 通过UnionId获取用户信息
+     * @param unionId
+     * @return
+     */
+    @Override
+    public R getUserInfoByUnionId(String unionId) {
+        SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getUnionid, unionId));
+        if (isNull(sysUserDO)) {
+            return R.fail("用户不存在");
+        }
+        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
+        BeanUtils.copyProperties(sysUserDO, loginUserInfoVO);
+        return R.ok(loginUserInfoVO);
+    }
 }

--
Gitblit v1.7.1