Parcourir la source

登录信息中添加用户可以使用的appid

hym il y a 4 ans
Parent
commit
4eef6a4860

+ 1 - 1
common/src/main/java/com/huaxu/exception/GloabalExceptionHandle.java

@@ -24,7 +24,7 @@ public class GloabalExceptionHandle {
     // 捕捉其他所有异常
     @ExceptionHandler(Exception.class)
     public AjaxMessage globalException(HttpServletRequest request, HandlerMethod handlerMethod, Throwable ex) {
-
+            log.error("系统错误",ex);
             return new AjaxMessage<>(ResultStatus.ERROR_500,ex.getMessage());
 
 

+ 1 - 0
common/src/main/java/com/huaxu/model/LoginUser.java

@@ -51,6 +51,7 @@ public class LoginUser implements UserDetails {
     @JsonIgnore
     //同一个手机号下的所有用户信息
     private String userInfos;
+    private List<String>appIds;
 
 
 

+ 1 - 0
common/src/main/java/com/huaxu/model/ProgramItem.java

@@ -23,5 +23,6 @@ public class ProgramItem implements Serializable {
     @ApiModelProperty(value="部门机构id")
     private Integer orgCompanyId;
     private Integer orgType;
+    private String newType;
 
 }

+ 119 - 0
user_auth/src/main/java/com/huaxu/entity/MenuEntity.java

@@ -0,0 +1,119 @@
+package com.huaxu.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * uims_menu
+ * @author: WYY
+ * @date 2020-10-26 16:15
+ */
+@Data
+@TableName("uims_menu")
+public class MenuEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */ 
+    @TableId(value = "id",type = IdType.AUTO)
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    /** 租户菜单ID */
+    @TableField(exist =  false)
+    @ApiModelProperty(value = "租户菜单ID")
+    private Long tenantMenuId;
+
+    /** 应用ID */
+    @ApiModelProperty(value = "应用ID")
+    private String appId;
+
+    /** 应用方菜单ID */
+    @ApiModelProperty(value = "应用方菜单ID")
+    private Long thirdMenuId;
+
+    /** 上级菜单ID */
+    @ApiModelProperty(value = "上级菜单ID")
+    private Long parentMenuId;
+
+    /** 名称 */
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    /** 图标 */
+    @ApiModelProperty(value = "图标")
+    private String menuImage;
+
+    /** 权限标识 */
+    @ApiModelProperty(value = "权限标识")
+    private String permissionFlag;
+
+    /** 链接路径 */
+    @ApiModelProperty(value = "链接路径")
+    private String linkPath;
+
+    /** 序列 */
+    @ApiModelProperty(value = "序列")
+    private Long seq;
+
+    /** 显示状态 */
+    @ApiModelProperty(value = "显示状态")
+    private Integer showState;
+
+    /** 是否租户可见 */
+    @ApiModelProperty(value = "是否租户可见")
+    private Integer isTenant;
+
+    /** 是否管理员可见 */
+    @ApiModelProperty(value = "是否管理员可见")
+    private Integer isAdmin;
+
+    /** 创建者 */
+    @ApiModelProperty(value = "创建者")
+    private String createBy;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @NotNull(message = "参数值不能为空")
+    @ApiModelProperty(value = "创建时间")
+    private Date dateCreate;
+
+    /** 更新者 */
+    @ApiModelProperty(value = "更新者")
+    private String updateBy;
+
+    /** dateUpdate */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @NotNull(message = "参数值不能为空")
+    @ApiModelProperty(value = "修改时间")
+    private Date dateUpdate;
+
+    /** status */
+    @ApiModelProperty(value = "启用状态")
+    @TableLogic
+    private Integer status;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 租户标识
+     */
+    @ApiModelProperty(value = "租户标识")
+    @JsonIgnore
+    @TableField(exist = false)
+    private String tenantId;
+
+    @ApiModelProperty(value = "子类", position = 100)
+    @TableField(exist = false)
+    private List<MenuEntity> children;
+
+}

+ 13 - 1
user_auth/src/main/java/com/huaxu/service/impl/UserServiceImpl.java

@@ -6,6 +6,7 @@ import com.huaxu.dao.LoginLogMapper;
 import com.huaxu.dao.UserMapper;
 import com.huaxu.dto.UserDto;
 import com.huaxu.entity.LoginLog;
+import com.huaxu.entity.MenuEntity;
 import com.huaxu.entity.Org;
 import com.huaxu.entity.User;
 import com.huaxu.model.*;
@@ -19,6 +20,7 @@ import com.huaxu.util.RedisUtil;
 import com.huaxu.util.UserUtil;
 import com.huaxu.util.Util;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import org.springframework.data.redis.connection.RedisConnection;
@@ -245,7 +247,8 @@ public class UserServiceImpl implements UserService {
         Set<GrantedAuthority> grantedAuthorities = new HashSet<>();
         OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) SecurityContextHolder.getContext().getAuthentication();
         LoginUser loginUser = (LoginUser) oAuth2Authentication.getPrincipal();
-
+        //放置系统级菜单对应用户appid
+        loginUser.setAppIds(findUserFirstMenu(user.getTenantId(),user.getId()));
         loginUser.setProgramItemList(programItems);
         loginUser.setName(user.getUsername());
         loginUser.setId(user.getId());
@@ -259,6 +262,7 @@ public class UserServiceImpl implements UserService {
         loginUser.setPermissonType(permission.getPermissionType());
         loginUser.setRoleId(permission.getRoleId());
         loginUser.setLoginToken(UUID.randomUUID().toString());
+
         MobileLoginAuthenticationToken authenticationTokenReslut = new MobileLoginAuthenticationToken(loginUser,oAuth2Authentication.getCredentials(),loginUser.getAuthorities());
         authenticationTokenReslut.setDetails(oAuth2Authentication.getDetails());
         OAuth2Authentication oAuth2AuthenticationNew = new OAuth2Authentication(oAuth2Authentication.getOAuth2Request(), authenticationTokenReslut);
@@ -344,6 +348,14 @@ public class UserServiceImpl implements UserService {
 
         return permissionList.get(0);
     }
+    private List<String> findUserFirstMenu(String tenantId,  Integer userId){
+        List<String>appIds=new ArrayList<>();
+        List<MenuEntity> userFirstMenu = userMapper.findUserFirstMenu(tenantId, userId);
+        userFirstMenu.forEach(menuEntity -> {
+            appIds.add(menuEntity.getAppId());
+        });
+        return appIds;
+    }
     @Override
     public boolean logOut(String token) {