From 73c12f99749dac8f23b69305b3691aa48d813f9d Mon Sep 17 00:00:00 2001
From: luofl <1442745593@qq.com>
Date: 星期六, 15 三月 2025 18:52:17 +0800
Subject: [PATCH] 1.

---
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java |  104 +++++++++++++++++++++++++++++++---------------------
 1 files changed, 62 insertions(+), 42 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
index 83554c6..d92e42e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
@@ -1,39 +1,30 @@
 package com.panzhihua.sangeshenbian.controller;
 
 import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.panzhihua.common.controller.BaseController;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.redis.RedisUtils;
 import com.panzhihua.sangeshenbian.model.entity.Banner;
 import com.panzhihua.sangeshenbian.model.entity.Department;
+import com.panzhihua.sangeshenbian.model.entity.PartyMember;
 import com.panzhihua.sangeshenbian.model.entity.SystemUser;
 import com.panzhihua.sangeshenbian.model.query.BasePage;
 import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO;
 import com.panzhihua.sangeshenbian.model.vo.MessageNotificationVO;
 import com.panzhihua.sangeshenbian.model.vo.PartyCardInfoVO;
-import com.panzhihua.sangeshenbian.service.IBannerService;
-import com.panzhihua.sangeshenbian.service.IComplaintService;
-import com.panzhihua.sangeshenbian.service.IDepartmentService;
-import com.panzhihua.sangeshenbian.service.IMessageNotificationService;
-import com.panzhihua.sangeshenbian.service.ISystemUserService;
+import com.panzhihua.sangeshenbian.service.*;
 import com.panzhihua.sangeshenbian.utils.BaiduMapUtil;
+import com.panzhihua.sangeshenbian.warpper.IdentityInformationVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Lazy;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * @author mitao
@@ -48,8 +39,8 @@
     private final IMessageNotificationService messageNotificationService;
     private final IComplaintService complaintService;
     private final ISystemUserService systemUserService;
-    private final UserService userService;
-    private final IDepartmentService departmentService;
+    private final IPartyMemberService partyMemberService;
+    private final RedisUtils redisUtils;
 
     @ApiOperation("获取banner列表")
     @GetMapping("/banner-list")
@@ -61,31 +52,18 @@
     @ApiOperation("获取党员证信息")
     public R<PartyCardInfoVO> getPartyCardInfo() {
         LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        // 获取党员信息
+        PartyMember partyMember = partyMemberService.getOne(new LambdaQueryWrapper<PartyMember>()
+                .eq(PartyMember::getPhone, loginUserInfo.getPhone())
+                .eq(PartyMember::getDelFlag, 0));
+
         PartyCardInfoVO partyCardInfoVO = new PartyCardInfoVO();
-        partyCardInfoVO.setName(loginUserInfo.getName());
-        partyCardInfoVO.setIdCard(loginUserInfo.getIdCard());
-        Optional<SystemUser> systemUserOpt = systemUserService.getSystemUserByPhone(loginUserInfo.getPhone());
-        systemUserOpt.ifPresent(systemUser -> {
-            // 使用Optional链式调用简化部门ID获取逻辑
-            Integer lastDepartmentId = Optional.ofNullable(systemUser.getFourDepartmentId())
-                    .orElseGet(() -> Optional.ofNullable(systemUser.getThreeDepartmentId())
-                            .orElseGet(systemUser::getTwoDepartmentId));
-
-            // 缓存部门查询结果避免重复查询
-            Map<Integer, Department> departmentCache = new HashMap<>();
-            Department first = departmentCache.computeIfAbsent(systemUser.getOneDepartmentId(),
-                    departmentService::getById);
-            Department last = null;
-            if (Objects.nonNull(lastDepartmentId)) {
-                 last = departmentCache.computeIfAbsent(lastDepartmentId,
-                        departmentService::getById);
-            }
-
-            // 使用Objects.toString简化字符串拼接
-            partyCardInfoVO.setPartyOrganization(
-                    Objects.isNull(last) ? Objects.toString(first.getName(), "") :
-                            Objects.toString(first.getName(), "") + "-" + Objects.toString(last.getName(), ""));
-        });
+        partyCardInfoVO.setName(partyMember.getName());
+        partyCardInfoVO.setIdCard(partyMember.getIdNumber());
+        partyCardInfoVO.setDistricts(partyMember.getDistricts());
+        partyCardInfoVO.setStreet(partyMember.getStreet());
+        partyCardInfoVO.setCommunity(partyMember.getCommunity());
+        partyCardInfoVO.setPartyOrganization(partyMember.getPartyOrganization());
         return R.ok(partyCardInfoVO);
     }
 
@@ -129,4 +107,46 @@
     public R<JSONArray> searchLocation(String query, String location) {
         return R.ok(BaiduMapUtil.searchLocation(query, location));
     }
+
+    /**
+     * 获取身份信息
+     */
+    @GetMapping("/identity-info")
+    @ApiOperation("获取身份信息")
+    public R<IdentityInformationVO> getIdentityInfo() {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        // 获取党员信息
+        PartyMember partyMember = partyMemberService.getOne(new LambdaQueryWrapper<PartyMember>()
+                .eq(PartyMember::getPhone, loginUserInfo.getPhone())
+                .eq(PartyMember::getDelFlag, 0));
+
+        // 获取管理员信息
+        SystemUser systemUser = systemUserService.getSystemUserAdminByPhone(getLoginUserInfo().getPhone()).orElse(null);
+        // 获取身份
+        Integer identity = (Integer) redisUtils.get("identity:" + loginUserInfo.getPhone());
+        List<Integer> permissions = new ArrayList<>();
+        IdentityInformationVO identityInformationVO = new IdentityInformationVO();
+        identityInformationVO.setIdentity(identity);
+        identityInformationVO.setIsPartymember(partyMember != null);
+        identityInformationVO.setAuditStatus(partyMember == null ? null : partyMember.getAuditStatus());
+        if (partyMember !=null){
+            permissions.add(1);
+        }
+        if (systemUser != null){
+            permissions.add(2);
+        }
+        identityInformationVO.setPermissions(permissions);
+        return R.ok(identityInformationVO);
+    }
+
+    /**
+     * 切换身份
+     */
+    @GetMapping("/change-identity")
+    @ApiOperation("切换身份")
+    public R<?> changeIdentity(Integer identity) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        redisUtils.set("identity:" + loginUserInfo.getPhone(), identity);
+        return R.ok();
+    }
 }

--
Gitblit v1.7.1