From c7f69f55e98c9f0777d46ef04f5cb58924e8d869 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 23 五月 2025 23:42:52 +0800
Subject: [PATCH] bug修改

---
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/PartyMemberServiceImpl.java |   89 ++++++++++++++++++++++++++++++++++----------
 1 files changed, 69 insertions(+), 20 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/PartyMemberServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/PartyMemberServiceImpl.java
index 8b2bc37..56a5008 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/PartyMemberServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/PartyMemberServiceImpl.java
@@ -14,6 +14,7 @@
 import com.panzhihua.common.redis.RedisUtils;
 import com.panzhihua.sangeshenbian.dao.PartyMemberMapper;
 import com.panzhihua.sangeshenbian.enums.AuditStatusEnum;
+import com.panzhihua.sangeshenbian.enums.FreezeStatusEnum;
 import com.panzhihua.sangeshenbian.enums.ReportTypeEnum;
 import com.panzhihua.sangeshenbian.model.entity.*;
 import com.panzhihua.sangeshenbian.model.excel.PartyMemberExcel;
@@ -48,6 +49,8 @@
     private final IComStreetService comStreetService;
     private final IComActService comActService;
     private final RedisUtils redisUtils;
+    private final ISystemUserLevelService systemUserLevelService;
+    private final IdentityInformationService identityInformationService;
     /**
      * 党员分页查询列表
      *
@@ -57,7 +60,33 @@
      */
     @Override
     public Page<PartyMember> pageList(PartyMemberQuery query, SystemUserVo loginUserInfo) {
+        SystemUser user = systemUserService.getById(loginUserInfo.getId());
+        if (Objects.isNull(user)){
+            throw new ServiceException("用户不存在");
+        }
+        loginUserInfo.setAccountLevel(user.getAccountLevel());
+        loginUserInfo.setDistrictsCode(user.getDistrictsCode());
+        loginUserInfo.setStreetId(user.getStreetId());
+        loginUserInfo.setCommunityId(user.getCommunityId());
         return  baseMapper.pageList(new Page<>(query.getPageNum(), query.getPageSize()),query,loginUserInfo);
+        // 判断当前登录用户是否有权限查看这个社区的党员
+//        if(loginUserInfo.getAccountLevel()==1){
+//            // 是市级权限 全查
+//            return  baseMapper.pageList(new Page<>(query.getPageNum(), query.getPageSize()),query,loginUserInfo);
+//        }
+//        if(loginUserInfo.getAccountLevel()==2){
+//            // 是区县权限
+//            // 判断当前登录用户是否有权限查看这个社区的党员
+//            LambdaQueryWrapper<PartyMember> queryWrapper = new LambdaQueryWrapper<>();
+//            queryWrapper.eq(PartyMember::getDistrictsCode,loginUserInfo.getDistrictsCode());
+//            if(StrUtil.isNotBlank(query.getName())){
+//                queryWrapper.like(PartyMember::getName,query.getName());
+//            }
+//            if(StrUtil.isNotBlank(query.getIdNumber())){}
+//        }
+//        return null;
+
+
     }
     /**
      * 添加党员
@@ -69,13 +98,27 @@
         PartyMember partyMember = BeanUtil.copyProperties(dto, PartyMember.class);
         String idNumber = dto.getIdNumber();
         partyMember.setGender(getGender(idNumber));
+        BcRegion districtByCode = bcRegionService.getDistrictByCode(dto.getDistrictsCode());
+        if (Objects.nonNull(districtByCode)){
+            partyMember.setDistricts(districtByCode.getRegionName());
+        }
+        ComStreet street = comStreetService.getById(dto.getStreetId());
+        if (Objects.nonNull(street)){
+            partyMember.setStreet(street.getName());
+        }
+        ComAct act = comActService.getById(dto.getCommunityId());
+        if (Objects.nonNull(act)){
+            partyMember.setCommunity(act.getName());
+        }
         if (Objects.isNull(dto.getId())) {
             //添加
             partyMember.setCreateBy(Long.parseLong(loginUserInfo.getId().toString()));
             partyMember.setAuditStatus(AuditStatusEnum.APPROVED.getCode());
+            partyMember.setFreezeStatus(FreezeStatusEnum.NORMAL.getCode());
             partyMember.setSource(1);
             save(partyMember);
         } else {
+            partyMember.setIsConfirm(0);
             partyMember.setUpdateBy(Long.parseLong(loginUserInfo.getId().toString()));
             updateById(partyMember);
         }
@@ -86,11 +129,12 @@
      * @param loginUserInfo
      */
     @Override
-    public void freeze(Long id, SystemUserVo loginUserInfo) {
+    public PartyMember freeze(Long id, SystemUserVo loginUserInfo) {
         PartyMember partyMember = getById(id);
         partyMember.setFreezeStatus(partyMember.getFreezeStatus() == 1 ? 0 : 1);
         partyMember.setUpdateBy(Long.parseLong(loginUserInfo.getId().toString()));
         updateById(partyMember);
+        return partyMember;
     }
 
     @Override
@@ -111,7 +155,15 @@
      */
     @Override
     public void export(PartyMemberQuery query, SystemUserVo loginUserInfo) throws IOException {
-     List<PartyMember> list = baseMapper.queryList(query,loginUserInfo);
+        SystemUser user = systemUserService.getById(loginUserInfo.getId());
+        if (Objects.isNull(user)){
+            throw new ServiceException("用户不存在");
+        }
+        loginUserInfo.setAccountLevel(user.getAccountLevel());
+        loginUserInfo.setDistrictsCode(user.getDistrictsCode());
+        loginUserInfo.setStreetId(user.getStreetId());
+        loginUserInfo.setCommunityId(user.getCommunityId());
+        List<PartyMember> list = baseMapper.queryList(query,loginUserInfo);
         List<PartyMemberExcel> partyMemberExcels = BeanUtil.copyToList(list, PartyMemberExcel.class);
         response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
         response.setCharacterEncoding("utf-8");
@@ -214,11 +266,12 @@
                             // 验证社区是否存在且属于该街道
                             // 实际代码应该是调用相应的Service查询社区信息
                             ComAct comAct = comActService.getCommunityByNameAndStreet(communityName, comStreet.getStreetId());
-                            streetId = comStreet.getStreetId();
-                            communityId = comAct.getCommunityId();
                             if (Objects.isNull(comAct)) {
                                 isValid = false;
                                 errorMsg.append("社区不存在或不属于所选街道; ");
+                            } else {
+                                streetId = comStreet.getStreetId();
+                                communityId = comAct.getCommunityId();
                             }
                         }
                     }
@@ -242,8 +295,8 @@
                 //导入党员默认审核通过
                 partyMember.setAuditStatus(AuditStatusEnum.APPROVED.getCode());
                 partyMember.setSource(1);//管理后台录入
-                //默认头像 TODO 默认头像
-                partyMember.setAvatar("");
+                //默认头像
+                partyMember.setAvatar("https://www.psciio.com//idcard/f15c91f940624ed59537ecced1059f18.jpg");
                 // 根据身份证号设置性别
                 if (StrUtil.isNotBlank(template.getIdNumber())) {
                     partyMember.setGender(getGender(template.getIdNumber()));
@@ -295,10 +348,11 @@
      * @param loginUserInfo
      */
     @Override
-    public void audit(PartyMemberDTO dto, SystemUserVo loginUserInfo) {
+    public PartyMember audit(PartyMemberDTO dto, SystemUserVo loginUserInfo) {
         PartyMember partyMember = BeanUtil.copyProperties(dto, PartyMember.class);
         partyMember.setUpdateBy(Long.parseLong(loginUserInfo.getId().toString()));
         updateById(partyMember);
+        return this.getById(dto.getId());
     }
 
     @Override
@@ -308,34 +362,29 @@
                 .eq(SystemUser::getPhone, loginUserInfo.getPhone())
                 .eq(SystemUser::getIsAdmin, 1)
                 .ne(SystemUser::getStatus, 3)
+                .ne(SystemUser::getAccountLevel, 5)
                 .last("LIMIT 1"));
-
-        // 获取党员信息
-        PartyMember partyMember = getOne(new LambdaQueryWrapper<PartyMember>()
-                .eq(PartyMember::getPhone, loginUserInfo.getPhone())
-                .eq(PartyMember::getDelFlag, 0));
 
 
 
         if (adminUser == null){
             throw new ServiceException("无权审核");
         }
-
-        Integer identity = (Integer) redisUtils.get("identity:" + loginUserInfo.getPhone());
-        if(identity == null || identity == 2){
+        IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfo);
+        if(identityInformation.getIdentity().equals(1)){
             throw new ServiceException("请切换至管理员身份");
         }
-
-        int accountLevel = adminUser.getAccountLevel();
+        SystemUserLevel systemUserLevel = identityInformation.getSystemUserLevel();
+        int accountLevel = systemUserLevel.getLevel();
         Long communityId = null;
         String streetId = null;
         String districtsCode = null;
         if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) {
-            communityId = adminUser.getCommunityId();
+            communityId = systemUserLevel.getCommunityId();
         } else if (accountLevel == ReportTypeEnum.STREET.getCode()) {
-            streetId = adminUser.getStreetId();
+            streetId = systemUserLevel.getStreetId();
         } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) {
-            districtsCode = adminUser.getDistrictsCode();
+            districtsCode = systemUserLevel.getDistrictsCode();
         } else if(accountLevel != ReportTypeEnum.CITY.getCode()){
             throw new ServiceException("无权审核:未知等级");
         }

--
Gitblit v1.7.1