From 60d68e10c679818c0c747372a6b24f83d34e14f7 Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期三, 08 六月 2022 16:40:16 +0800
Subject: [PATCH] bug修改

---
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java |  175 ++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 114 insertions(+), 61 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 899fa64..5794e7f 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
@@ -4,23 +4,20 @@
 import static java.util.Objects.nonNull;
 import static org.apache.commons.lang3.StringUtils.isNotBlank;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.Set;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
-import javax.validation.constraints.NotBlank;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO;
+import com.panzhihua.common.model.vos.community.ComAreaTownCommunityVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
 import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO;
+import com.panzhihua.common.model.vos.user.*;
+import com.panzhihua.common.utlis.*;
 import com.panzhihua.service_user.dao.*;
 import com.panzhihua.service_user.entity.SysAppConfig;
 import com.panzhihua.service_user.entity.SysTemplateConfig;
@@ -75,28 +72,6 @@
 import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO;
 import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO;
 import com.panzhihua.common.model.vos.shop.ShopStoreVO;
-import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
-import com.panzhihua.common.model.vos.user.ChangePasswordVO;
-import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
-import com.panzhihua.common.model.vos.user.ComMngUserTagVO;
-import com.panzhihua.common.model.vos.user.CommunityUserInfoVO;
-import com.panzhihua.common.model.vos.user.MenuRoleVO;
-import com.panzhihua.common.model.vos.user.NoticeUnReadVO;
-import com.panzhihua.common.model.vos.user.SysOperLogVO;
-import com.panzhihua.common.model.vos.user.SysUserAgreementVO;
-import com.panzhihua.common.model.vos.user.SysUserFeedbackVO;
-import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
-import com.panzhihua.common.model.vos.user.SysUserVO;
-import com.panzhihua.common.model.vos.user.UpdateUserArchivesVO;
-import com.panzhihua.common.model.vos.user.UserArchivesVO;
-import com.panzhihua.common.model.vos.user.UserPhoneVO;
-import com.panzhihua.common.utlis.IdCard;
-import com.panzhihua.common.utlis.SensitiveUtil;
-import com.panzhihua.common.utlis.SmsUtil;
-import com.panzhihua.common.utlis.Snowflake;
-import com.panzhihua.common.utlis.StringUtils;
-import com.panzhihua.common.utlis.WxUtil;
-import com.panzhihua.common.utlis.WxXCXTempSend;
 import com.panzhihua.service_user.model.dos.ComActFourMember;
 import com.panzhihua.service_user.model.dos.ComMngFamilyInfoDO;
 import com.panzhihua.service_user.model.dos.ComMngUserTagDO;
@@ -331,6 +306,10 @@
             loginUserInfoVO.setCommunityId(sysUserDO.getCommunityId());
             if(comActVO!=null){
                 loginUserInfoVO.setComActVO(comActVO);
+                String areaName=userDao.selectAreaCodeByStreetId(comActVO.getStreetId());
+                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());
@@ -378,6 +357,7 @@
         loginUserInfoVO.setIsPropertyWorker(2);
         loginUserInfoVO.setIsSocialWorker(2);
         loginUserInfoVO.setIsFmsMember(2);
+        loginUserInfoVO.setIsAcidMember(0);
         // 志愿者状态
         String phone = sysUserDO.getPhone();
         Long userCommunityId = sysUserDO.getCommunityId();
@@ -416,6 +396,22 @@
             int countFmsMember = userDao.countFmsMember(phone, userCommunityId);
             if (countFmsMember > 0) {
                 loginUserInfoVO.setIsFmsMember(1);
+            }
+            //是否是防疫工作人员
+            ComActAcidMemberVO acidMember = userDao.selectAcidMemberByPhone(phone);
+            if (nonNull(acidMember)) {
+                if(acidMember.getRelationName().equals("panzhihua")||acidMember.getRelationName().equals("西区")||acidMember.getRelationName().equals("东区")||acidMember.getRelationName().equals("仁和区")||acidMember.getRelationName().equals("米易县")||acidMember.getRelationName().equals("盐边县")){
+                    loginUserInfoVO.setIsAcidMember(1);
+                }
+                else {
+                    loginUserInfoVO.setIsAcidMember(2);
+                }
+                loginUserInfoVO.setRelationName(acidMember.getRelationName());
+            }
+            //是否网格员
+            int easyPhotoMember = userDao.countEasyPhotoMember(phone, userCommunityId);
+            if (easyPhotoMember > 0) {
+                loginUserInfoVO.setIsEasyPhotoMember(1);
             }
             // 是否是"管理员"或者 本社区 "社区团队"、"党委成员"
             Integer countTeam = userDao.selectCountTeam(phone, userCommunityId);
@@ -710,6 +706,10 @@
         }
         ComActVO comActVO = userDao.selectCommunity(loginUserInfoVO.getCommunityId());
         if (!ObjectUtils.isEmpty(comActVO)) {
+            String areaName=userDao.selectAreaCodeByStreetId(comActVO.getStreetId());
+            if(StringUtils.isNotEmpty(areaName)){
+                loginUserInfoVO.setAreaName(areaName);
+            }
             loginUserInfoVO.setComActVO(comActVO);
             loginUserInfoVO.setCommunityName(comActVO.getName());
             loginUserInfoVO.setAreaCode(comActVO.getAreaCode());
@@ -723,6 +723,18 @@
         //是否微团队成员
         int countFmsMember = userDao.countFmsMember(loginUserInfoVO.getPhone(), loginUserInfoVO.getCommunityId());
         loginUserInfoVO.setIsFmsMember(countFmsMember > 0 ? 1 : 0);
+        //是否是防疫工作人员
+        loginUserInfoVO.setIsAcidMember(0);
+        ComActAcidMemberVO acidMember = userDao.selectAcidMemberByPhone(loginUserInfoVO.getPhone());
+        if (nonNull(acidMember)) {
+            if(acidMember.getRelationName().equals("panzhihua")||acidMember.getRelationName().equals("西区")||acidMember.getRelationName().equals("东区")||acidMember.getRelationName().equals("仁和区")||acidMember.getRelationName().equals("米易县")||acidMember.getRelationName().equals("盐边县")){
+                loginUserInfoVO.setIsAcidMember(1);
+            }
+            else {
+                loginUserInfoVO.setIsAcidMember(2);
+            }
+            loginUserInfoVO.setRelationName(acidMember.getRelationName());
+        }
         loginUserInfoVO.setIdCard(SensitiveUtil.desensitizedIdNumber(loginUserInfoVO.getIdCard()));
         loginUserInfoVO.setPhone(SensitiveUtil.desensitizedPhoneNumber(loginUserInfoVO.getPhone()));
         //判断账号类型
@@ -917,7 +929,7 @@
                 // 实名认证成功推送订阅消息给用户
                 try {
                     WxXCXTempSend util = new WxXCXTempSend();
-                    String accessToken = util.getAppAccessToken();
+                    String accessToken = util.getAccessToken();
                     SysTemplateConfig sysTemplateConfig=sysTemplateConfigDao.selectOne(new QueryWrapper<SysTemplateConfig>().lambda().eq(SysTemplateConfig::getAreaCode, loginUserInfoVO.getComActVO()).eq(SysTemplateConfig::getType,5));
                     // 用户实名认证推送消息
                     WxUtil.sendSubscribeRZSH(user.getOpenid(), accessToken, "实名认证",
@@ -1107,6 +1119,21 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public R addUserBackstage(AdministratorsUserVO administratorsUserVO) {
+        ComActVO comActVO = userDao.selectCommunity(administratorsUserVO.getCommunityId());
+        if (nonNull(comActVO)) {
+            List<ComAreaTownCommunityVO> areaTownList = userDao.selectAreaTownCommunity(comActVO.getName());
+            if (!areaTownList.isEmpty()) {
+                administratorsUserVO.setRelationName(comActVO.getName());
+                String address = comActVO.getAddress();
+                if (areaTownList.size() > 1 && isNotBlank(address)) {
+                    ComAreaTownCommunityVO townCommunityVO = areaTownList.stream()
+                            .filter(e -> address.contains(e.getArea()) && address.contains(e.getTown())).findFirst().orElse(null);
+                    if (nonNull(townCommunityVO)) {
+                        administratorsUserVO.setRelationName(String.join(",", townCommunityVO.getArea(), townCommunityVO.getTown(), townCommunityVO.getCommunity()));
+                    }
+                }
+            }
+        }
         SysUserDO sysUserDO = new SysUserDO();
         Long roleId = administratorsUserVO.getRoleId();
         if (roleId.intValue() == 999999999 || roleId.intValue() == 888888888) {
@@ -1198,31 +1225,6 @@
                 throw new ServiceException("手机号已存在");
             }
 
-        }
-
-        if (insert > 0 && sysUserDO.getType() == 3 &&sysUserDO.getStreetId()==null) {// 添加的用户是社区账号时
-            // 添加网格综合治理管理后台用户
-            SysUserDO sysUserDOWangGe = new SysUserDO();
-            BeanUtils.copyProperties(sysUserDO, sysUserDOWangGe);
-            sysUserDOWangGe.setUserId(null);
-            sysUserDOWangGe.setType(7);// 网格综治后台
-            try {
-                int addWange = userDao.insert(sysUserDOWangGe);
-                if (addWange != 1) {
-                    throw new ServiceException("新增网格综合治理管理后台用户失败");
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-                log.error("网格综合治理管理后台用户报错【{}】", e.getMessage());
-                if (e.getMessage().contains("union_phone_type")) {
-                    throw new ServiceException("手机号已经存在");
-                } else if (e.getMessage().contains("union_account_type")) {
-                    throw new ServiceException("账户已经存在");
-                }else if(e.getMessage().contains("23000")){
-                    throw new ServiceException("手机号已存在");
-                }
-
-            }
         }
         if (insert > 0) {
             SysUserDO sysUserDO1 = userDao
@@ -1459,7 +1461,6 @@
      * @return 删除结果
      */
     @Override
-    @Transactional(rollbackFor = Exception.class)
     public R deleteUserBackstage(AdministratorsUserVO administratorsUserVO) {
         Long userId = administratorsUserVO.getUserId();
         SysUserDO sysUserDO = userDao.selectById(userId);
@@ -1855,7 +1856,7 @@
     @Override
     public R dataKanban(String areaCode) {
         IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(areaCode);
-        List<DataKanbanDTO> dataKanbanDTOS = userDao.selectCommunityUserOrder(areaCode);
+        List<DataKanbanDTO> dataKanbanDTOS = userDao.selectCommunityUserOrder(new Page(1L, 9999L), areaCode).getRecords();
 
         List<String> communityUserX = new ArrayList<>();
         List<Integer> communityUserY = new ArrayList<>();
@@ -1963,6 +1964,30 @@
                 stringRedisTemplate.delete(userKey);
             }
             log.info("新增党员修改用户党员状态成功 身份证号【{}】", idCard);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 修改用户的党员状态
+     *
+     * @param phone
+     *            身份证号
+     * @return 修改结果
+     */
+    @Override
+    public R updateUserIsPartymemberByPhone(String phone) {
+        SysUserDO sysUserDO = userDao.selectOne(
+                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, phone).eq(SysUserDO::getType, 1));
+        if (sysUserDO != null) {
+            sysUserDO.setIsPartymember(1);
+            int updated = userDao.updateById(sysUserDO);
+            if (updated > 0) {
+                // 删除用户信息缓存
+                String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId();
+                stringRedisTemplate.delete(userKey);
+            }
+            log.info("新增党员修改用户党员状态成功 手机号【{}】", phone);
         }
         return R.ok();
     }
@@ -2878,10 +2903,18 @@
         List<Integer> communityActiveUserZ = new ArrayList<>();
 
         List<DataKanbanDTO> dataKanbanDTOS = null;
+        Page page = new Page<>();
+        if (nonNull(dataKanBansDto.getPageNum()) && nonNull(dataKanBansDto.getPageSize())) {
+            page.setCurrent(dataKanBansDto.getPageNum());
+            page.setSize(dataKanBansDto.getPageSize());
+        } else {
+            page.setCurrent(1L);
+            page.setSize(20L);
+        }
         if(dataKanBansDto.getType() != null && dataKanBansDto.getType().equals(DataKanBansDto.type.by)){
-            dataKanbanDTOS = userDao.selectCommunityUserOrderMonth(dataKanBansDto.getAreaCode());
+            dataKanbanDTOS = userDao.selectCommunityUserOrderMonth(page, dataKanBansDto.getAreaCode()).getRecords();
         }else{
-            dataKanbanDTOS = userDao.selectCommunityUserOrder(dataKanBansDto.getAreaCode());
+            dataKanbanDTOS = userDao.selectCommunityUserOrder(page, dataKanBansDto.getAreaCode()).getRecords();
         }
         if (!ObjectUtils.isEmpty(dataKanbanDTOS)) {
             dataKanbanDTOS.forEach(dataKanbanDTO -> {
@@ -3220,4 +3253,24 @@
         }
         return R.ok();
     }
+
+    @Override
+    public R uuLogin(UuLoginVO uuLoginVO) {
+        uuLoginVO.setAppid("10000");
+        String timeStamp=PayUtil.create_timestamp();
+        uuLoginVO.setTimestamp(timeStamp);
+        try {
+            uuLoginVO.setSign(PayUtil.MD5(uuLoginVO.getAppid()+"e10adc3949ba59abbe56e057f20f883e"+timeStamp).toLowerCase(Locale.ROOT));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        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);
+        JSONObject result = JSON.parseObject(resultJson);
+        if(result.get("status").equals(1)){
+            return R.ok(result.get("data"));
+        }
+        return R.fail("信息错误");
+    }
 }

--
Gitblit v1.7.1