1 package com.supwisdom.institute.backend.admin.bff.api.v1.controller.me;
3 import java.util.ArrayList;
6 import io.swagger.annotations.Api;
7 import io.swagger.annotations.ApiOperation;
9 import org.springframework.beans.factory.annotation.Autowired;
10 import org.springframework.util.MimeTypeUtils;
11 import org.springframework.web.bind.annotation.RequestMapping;
12 import org.springframework.web.bind.annotation.RequestMethod;
13 import org.springframework.web.bind.annotation.RestController;
15 import com.supwisdom.institute.backend.admin.bff.api.v1.model.base.Permission;
16 import com.supwisdom.institute.backend.admin.bff.api.v1.model.me.CurrentUser;
17 import com.supwisdom.institute.backend.admin.bff.api.v1.model.me.GrantedMenu;
18 import com.supwisdom.institute.backend.admin.bff.api.v1.service.base.AuthnService;
19 import com.supwisdom.institute.backend.admin.bff.api.v1.vo.me.response.data.CurrentUserResponseData;
20 import com.supwisdom.institute.backend.admin.bff.api.v1.vo.me.response.data.GrantedMenusResponseData;
21 import com.supwisdom.institute.backend.admin.bff.utils.CurrentUserUtil;
22 import com.supwisdom.institute.backend.common.core.transmit.user.User;
23 import com.supwisdom.institute.backend.common.framework.entity.EntityUtils;
24 import com.supwisdom.institute.backend.common.framework.vo.response.DefaultApiResponse;
27 @Api(value = "BFFMe", tags = { "me" }, description = "登录用户相关信息的接口")
29 @RequestMapping(value = "/v1/me")
30 public class MeController {
33 private AuthnService authnService;
37 value = "获取登录用户的基本信息", notes = "获取登录用户的基本信息", nickname = "user"
39 @RequestMapping(method = RequestMethod.GET, path = "/user", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
40 public DefaultApiResponse<CurrentUserResponseData> user() {
42 User user = CurrentUserUtil.currentUser();
44 CurrentUser cu = new CurrentUser();
45 cu.setUsername(user.getUsername());
46 cu.setRoles(user.getRoles());
47 cu.setAttributes(user.getAttributes());
49 // XXX: 如果需要放入其他信息,可以扩展CurrentUser,并从服务接口中获取后写入数据
51 CurrentUserResponseData data = CurrentUserResponseData.of(cu);
52 return new DefaultApiResponse<CurrentUserResponseData>(data);
57 value = "获取登录用户的访问菜单", notes = "获取登录用户的访问菜单", nickname = "accountMenus"
59 @RequestMapping(method = RequestMethod.GET, path = "/menus", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
60 public DefaultApiResponse<GrantedMenusResponseData> accountMenus() {
62 String username = CurrentUserUtil.currentUsername();
64 List<Permission> menus = authnService.menus(username, "1"); // XXX: applicationId
66 List<GrantedMenu> grantedMenus = new ArrayList<>();
69 GrantedMenu grantedMenu = new GrantedMenu();
70 grantedMenu = EntityUtils.copy(m, grantedMenu);
71 grantedMenus.add(grantedMenu);
74 GrantedMenusResponseData data = GrantedMenusResponseData.of(grantedMenus);
75 return new DefaultApiResponse<GrantedMenusResponseData>(data);