1 package com.supwisdom.institute.backend.admin.bff.apis.controller.me;
3 import java.util.ArrayList;
7 import io.swagger.annotations.Api;
8 import io.swagger.annotations.ApiOperation;
11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.util.MimeTypeUtils;
13 import org.springframework.web.bind.annotation.RequestMapping;
14 import org.springframework.web.bind.annotation.RequestMethod;
15 import org.springframework.web.bind.annotation.RestController;
18 import com.supwisdom.institute.backend.admin.bff.apis.model.base.Permission;
19 import com.supwisdom.institute.backend.admin.bff.apis.model.me.CurrentUser;
20 import com.supwisdom.institute.backend.admin.bff.apis.model.me.GrantedMenu;
21 import com.supwisdom.institute.backend.admin.bff.apis.service.base.AuthnAccountService;
22 import com.supwisdom.institute.backend.admin.bff.apis.vo.me.response.data.CurrentUserResponseData;
23 import com.supwisdom.institute.backend.admin.bff.apis.vo.me.response.data.GrantedMenusResponseData;
24 import com.supwisdom.institute.backend.admin.bff.utils.CurrentUserUtil;
25 import com.supwisdom.institute.backend.common.core.transmit.user.User;
26 import com.supwisdom.institute.backend.common.framework.entity.EntityUtils;
27 import com.supwisdom.institute.backend.common.framework.vo.response.DefaultApiResponse;
30 @Api(value = "BFFMe", tags = { "me" }, description = "登录用户相关信息的接口")
32 @RequestMapping(value = "/v1/me")
33 public class MeController {
36 private AuthnAccountService authnAccountService;
40 value = "获取登录用户的基本信息", notes = "获取登录用户的基本信息", nickname = "user"
42 @RequestMapping(method = RequestMethod.GET, path = "/user", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
43 public DefaultApiResponse<CurrentUserResponseData> user() {
45 User user = CurrentUserUtil.currentUser();
47 CurrentUser cu = new CurrentUser();
48 cu.setUsername(user.getUsername());
49 cu.setRoles(user.getRoles());
50 cu.setAttributes(user.getAttributes());
52 // XXX: 如果需要放入其他信息,可以扩展CurrentUser,并从服务接口中获取后写入数据
54 CurrentUserResponseData data = CurrentUserResponseData.of(cu);
55 return new DefaultApiResponse<CurrentUserResponseData>(data);
60 value = "获取登录用户的访问菜单", notes = "获取登录用户的访问菜单", nickname = "menus"
62 @RequestMapping(method = RequestMethod.GET, path = "/menus", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
63 public DefaultApiResponse<GrantedMenusResponseData> menus() {
65 String username = CurrentUserUtil.currentUsername();
67 List<Permission> menus = authnAccountService.menus(username, "1");
69 List<GrantedMenu> grantedMenus = new ArrayList<>();
72 GrantedMenu grantedMenu = new GrantedMenu();
73 grantedMenu = EntityUtils.copy(m, grantedMenu);
74 grantedMenus.add(grantedMenu);
77 GrantedMenusResponseData data = GrantedMenusResponseData.of(grantedMenus);
78 return new DefaultApiResponse<GrantedMenusResponseData>(data);