liujie
2025-06-06 dedefa06e62e001b69fa52bb18c759f5fe951c08
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
@@ -5,12 +5,15 @@
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.exceptions.ServiceException;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.redis.RedisUtils;
import com.panzhihua.sangeshenbian.model.dto.UserIdentityDTO;
import com.panzhihua.sangeshenbian.model.entity.Banner;
import com.panzhihua.sangeshenbian.model.entity.PartyMember;
import com.panzhihua.sangeshenbian.model.entity.SystemUser;
import com.panzhihua.sangeshenbian.model.entity.SystemUserLevel;
import com.panzhihua.sangeshenbian.model.query.BasePage;
import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO;
import com.panzhihua.sangeshenbian.model.vo.MessageNotificationVO;
@@ -20,6 +23,8 @@
import com.panzhihua.sangeshenbian.warpper.IdentityInformation;
import com.panzhihua.sangeshenbian.warpper.IdentityInformationVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
@@ -44,7 +49,7 @@
    private final IPartyMemberService partyMemberService;
    private final RedisUtils redisUtils;
    private final IdentityInformationService identityInformationService;
    private final ISystemUserLevelService systemUserLevelService;
    @ApiOperation("获取banner列表")
    @GetMapping("/banner-list")
    public R<List<Banner>> getBannerList() {
@@ -87,7 +92,29 @@
    @GetMapping("/current-user-info")
    @ApiOperation("获取三个身边当前用户信息 用于判断用户是否是上级")
    public R<SystemUser> getCurrentUserInfo() {
        return R.ok(systemUserService.getSystemUserAdminByPhone(getLoginUserInfo().getPhone()).orElse(null));
        SystemUser systemUser = systemUserService.getSystemUserAdminByPhone(getLoginUserInfo().getPhone()).orElse(null);
        Object o1 = redisUtils.get("identity:" + getLoginUserInfo().getPhone());
        if(o1!=null){
            UserIdentityDTO o2 = (UserIdentityDTO) o1;
            Integer levelId = o2.getLevelId();
            if(levelId!=null) {
                SystemUserLevel systemUserLevel = systemUserLevelService.getById(levelId);
                if (systemUserLevel == null) {
                    List<SystemUserLevel> list = systemUserLevelService.list(new LambdaQueryWrapper<SystemUserLevel>().eq(SystemUserLevel::getSystemUserId, systemUser.getId()).eq(SystemUserLevel::getStatus, 1));
                    if (list.size() > 0) {
                        systemUser.setLevelId(list.get(0).getLevel());
                    }
                } else {
                    systemUser.setLevelId(systemUserLevel.getLevel());
                }
            }else {
                List<SystemUserLevel> list = systemUserLevelService.list(new LambdaQueryWrapper<SystemUserLevel>().eq(SystemUserLevel::getSystemUserId, systemUser.getId()).eq(SystemUserLevel::getStatus, 1));
                if (list.size() > 0) {
                    systemUser.setLevelId(list.get(0).getLevel());
                }
            }
        }
        return R.ok(systemUser);
    }
    /**
@@ -141,9 +168,21 @@
     */
    @GetMapping("/change-identity")
    @ApiOperation("切换身份")
    public R<?> changeIdentity(Integer identity) {
    @ApiImplicitParams({
            @ApiImplicitParam(name = "identity", value = "身份 1:党员 2:管理员", required = true, dataType = "Integer"),
            @ApiImplicitParam(name = "levelId", value = "身份层级id,党员身份不传,管理员必传", required = true, dataType = "Integer")
    })
    public R<?> changeIdentity(@RequestParam(value = "identity", required = true) Integer identity,
                               @RequestParam(value = "levelId", required = false) Integer levelId) {
        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
        redisUtils.set("identity:" + loginUserInfo.getPhone(), identity);
        if (identity.equals(2) && Objects.isNull(levelId)) {
            throw new ServiceException("管理员所属层级id不能为空");
        }
        // 存储到Redis
        redisUtils.set("identity:" + loginUserInfo.getPhone(), UserIdentityDTO.builder()
                .identity(identity)
                .levelId(levelId)
                .build());
        return R.ok();
    }