|
- package com.simple.controller;
-
- import org.apache.shiro.SecurityUtils;
- import org.apache.shiro.authc.UsernamePasswordToken;
- import org.apache.shiro.subject.Subject;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.util.StringUtils;
- 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.RestController;
-
- import com.github.pagehelper.PageInfo;
- import com.simple.common.ResultData;
- import com.simple.domain.po.MallRolePermission;
- import com.simple.domain.po.MallUserInfo;
- import com.simple.domain.po.MallUserRole;
- import com.simple.service.MallRolePermissionService;
- import com.simple.service.MallUserRoleService;
- import com.simple.shiro.UserSession;
-
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
-
-
- @RestController
- @Api(description="登录相关接口")
- public class HomeController {
-
- // @Autowired
- // private MallRoleService sysRoleService;
- //
- // @Autowired
- // private MallPermissionService sysPermissionService;
-
- @Autowired
- private MallUserRoleService mallUserRoleService;
-
- @Autowired
- private MallRolePermissionService mallRolePermissionService;
-
- // @GetMapping("login")
- // public ResultData login() {
- // return new ResultData(Result.UNLOGIN, "用户未登录");
- // }
-
- @ApiOperation("登录")
- @PostMapping("/doLogin")
- public ResultData login(@RequestBody MallUserInfo user) {
- ResultData data = new ResultData();
- if (StringUtils.isEmpty(user.getUsername()) || StringUtils.isEmpty(user.getPassword())) {
- // throw new SystemException(ErrorCode.LOGIN_USER_OR_PWD_ERROR);
- return new ResultData(ResultData.ERROR,"用户名或者密码错误");
- }
- try {
- Subject subject = SecurityUtils.getSubject();
- UsernamePasswordToken token = new UsernamePasswordToken(user.getUsername(), user.getPassword());
- subject.login(token);
- // List<MallRole> roleList = sysRoleService.findRoleByUserId(user.getId());
- // if (null != roleList && roleList.size() > 0) {
- // List<MallPermission> permissionList = sysPermissionService
- // .findPermissionByRoleIds(roleList.stream().map(MallRole::getId).collect(Collectors.toList()));
- // user.setRole(roleList);
- // user.setPermission(permissionList);
- // }
- MallUserInfo info =(MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo);
- info.setPassword("保密");
- // System.out.println("id:"+ SecurityUtils.getSubject().getSession().getId());
- MallUserRole ur = new MallUserRole();
- ur.setUid(info.getId());
- PageInfo<MallUserRole> page = mallUserRoleService.listAsPage(ur, 1, 1);
- if(page.getSize()>0) {
- Long roleId = page.getList().get(0).getRoleId();
- MallRolePermission p = new MallRolePermission();
- p.setRoleId(roleId);
- p.setTenantId(info.getTenantId());
- PageInfo<MallRolePermission> listAsPage = mallRolePermissionService.listAsPage(p, 1, 100);
- String menus = "";
- for(MallRolePermission rp :listAsPage.getList()) {
- menus+=rp.getPermissionId()+",";
- }
- if(menus.length()>0) {
- menus = menus.substring(0, menus.length()-1);
- }
- info.setMenus(menus);
- }
- data.data=info;
- }catch(Exception e) {
- return new ResultData(ResultData.ERROR,"用户名或者密码错误");
- }
- return data;
- }
- @ApiOperation("登出")
- @GetMapping("/logout")
- public ResultData login() {
- ResultData data = new ResultData();
- SecurityUtils.getSubject().logout();
- return data;
- }
- }
|