增加用户体系
parent
68a4d9fb6a
commit
fdb8b7ee9d
@ -0,0 +1,183 @@
|
||||
package com.glxp.api.controller.sup;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.glxp.api.annotation.AuthRuleAnnotation;
|
||||
import com.glxp.api.common.enums.ResultEnum;
|
||||
import com.glxp.api.common.res.BaseResponse;
|
||||
import com.glxp.api.common.util.ResultVOUtils;
|
||||
import com.glxp.api.constant.Constant;
|
||||
import com.glxp.api.controller.BaseController;
|
||||
import com.glxp.api.dao.auth.AuthLicenseDao;
|
||||
import com.glxp.api.entity.auth.*;
|
||||
import com.glxp.api.entity.sup.UserCompanyEntity;
|
||||
import com.glxp.api.entity.sup.UserPersonEntity;
|
||||
import com.glxp.api.entity.system.CompanyEntity;
|
||||
import com.glxp.api.entity.system.SysPdaKeyEntity;
|
||||
import com.glxp.api.exception.JsonException;
|
||||
import com.glxp.api.req.auth.LoginRequest;
|
||||
import com.glxp.api.req.auth.PCLoginRequest;
|
||||
import com.glxp.api.req.auth.UpdatePasswordRequest;
|
||||
import com.glxp.api.req.auth.UpdateUserRequset;
|
||||
import com.glxp.api.res.auth.LoginResponse;
|
||||
import com.glxp.api.res.auth.LoginUserInfoResponse;
|
||||
import com.glxp.api.service.auth.*;
|
||||
import com.glxp.api.service.monitor.LogininforService;
|
||||
import com.glxp.api.service.sup.UserCompanyService;
|
||||
import com.glxp.api.service.sup.UserPersonService;
|
||||
import com.glxp.api.service.system.CompanyService;
|
||||
import com.glxp.api.util.*;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.validation.Valid;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 登录相关
|
||||
*/
|
||||
|
||||
@Api(tags = "客户端用户登录接口")
|
||||
@RestController
|
||||
@Slf4j
|
||||
@RequestMapping("/user/person")
|
||||
public class UserPersonLoginController extends BaseController {
|
||||
|
||||
|
||||
@Resource
|
||||
private UserPersonService userPersonService;
|
||||
@Resource
|
||||
private LogininforService logininforService;
|
||||
@Resource
|
||||
ISysMenuService menuService;
|
||||
@Resource
|
||||
ISysRoleService sysRoleService;
|
||||
@Resource
|
||||
UserCompanyService userCompanyService;
|
||||
@Resource
|
||||
SysPermissionService sysPermissionService;
|
||||
|
||||
|
||||
/**
|
||||
* 用户登录
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "系统用户登录",response = LoginResponse.class)
|
||||
@PostMapping(value = "/login")
|
||||
public BaseResponse index(@RequestBody @Valid LoginRequest loginRequest,
|
||||
BindingResult bindingResult,
|
||||
HttpServletRequest request) {
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
||||
}
|
||||
|
||||
UserPersonEntity userPerson = userPersonService.findByUserName(loginRequest.getUsername());
|
||||
if (userPerson == null) {
|
||||
throw new JsonException(ResultEnum.DATA_NOT, "用户名或密码错误");
|
||||
}
|
||||
|
||||
if (!PasswordUtils.authAdminPwd(loginRequest.getPassword()).equals(PasswordUtils.authAdminPwd(userPerson.getPassword()))) {
|
||||
throw new JsonException(ResultEnum.DATA_NOT, "用户名或密码错误");
|
||||
}
|
||||
|
||||
// 更新登录状态
|
||||
userPerson.setLastLoginTime(new Date());
|
||||
userPerson.setLastLoginIp(IpUtils.getIpAddr(request));
|
||||
userPersonService.update(userPerson);
|
||||
|
||||
|
||||
Map<String, Object> claims = new HashMap<>();
|
||||
claims.put("admin_id", userPerson.getId());
|
||||
String token = JwtUtils.createToken(claims, 86400L); // 一天后过期
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("id", userPerson.getId());
|
||||
map.put("token", token);
|
||||
map.put("time", DateUtil.getDateTime());
|
||||
LoginResponse loginResponse = new LoginResponse();
|
||||
loginResponse.setId(userPerson.getId() + "");
|
||||
loginResponse.setToken(token);
|
||||
loginResponse.setCompanyId(userPerson.getCompanyId());
|
||||
logininforService.recordLogininfor(userPerson.getName(), Constant.LOGIN_SUCCESS, "登录成功!", request);
|
||||
|
||||
return ResultVOUtils.success(loginResponse);
|
||||
}
|
||||
|
||||
|
||||
@ApiIgnore
|
||||
@AuthRuleAnnotation("")
|
||||
@ApiOperation(value = "获取登入用户信息",response = LoginUserInfoResponse.class)
|
||||
@GetMapping("/getInfo")
|
||||
public BaseResponse getUserInfo(HttpServletRequest request) {
|
||||
String adminId = request.getHeader("ADMIN_ID");
|
||||
Long id = Long.valueOf(adminId);
|
||||
UserPersonEntity userPerson = userPersonService.getById(id);
|
||||
LoginUserInfoResponse loginUserInfoResponse = new LoginUserInfoResponse();
|
||||
loginUserInfoResponse.setId(id);
|
||||
loginUserInfoResponse.setUserName(userPerson.getUserName());
|
||||
loginUserInfoResponse.setEmployeeName(userPerson.getName());
|
||||
loginUserInfoResponse.setCustomerId(userPerson.getCompanyId()+"");
|
||||
UserCompanyEntity companyEntity = userCompanyService.getById(userPerson.getCompanyId());
|
||||
loginUserInfoResponse.setCompanyName(companyEntity.getCompanyName());
|
||||
// 角色集合
|
||||
AuthAdmin authAdmin = new AuthAdmin();
|
||||
authAdmin.setId(userPerson.getId());
|
||||
Set<String> roles = sysPermissionService.getRolePermission(authAdmin);
|
||||
|
||||
List<SysRole> sysRoles = sysRoleService.selectRolesByUserId(id);
|
||||
authAdmin.setRoles(sysRoles);
|
||||
// 权限集合
|
||||
Set<String> permissions = sysPermissionService.getMenuPermission(authAdmin);
|
||||
|
||||
loginUserInfoResponse.setRoles(roles);
|
||||
loginUserInfoResponse.setPermissions(permissions);
|
||||
|
||||
return ResultVOUtils.success(loginUserInfoResponse);
|
||||
}
|
||||
|
||||
|
||||
@ApiIgnore
|
||||
@ApiOperation(value = "获取路由信息",response = RouterEntity.class)
|
||||
@GetMapping("/getRouters")
|
||||
public BaseResponse getRouters() {
|
||||
UserPersonEntity userPerson = getClientUser();
|
||||
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userPerson.getId());
|
||||
return ResultVOUtils.success(menuService.buildMenus(menus));
|
||||
}
|
||||
|
||||
//修改用户信息
|
||||
@AuthRuleAnnotation("")
|
||||
@PostMapping("/updateUser")
|
||||
public BaseResponse updateUser(@RequestBody UpdateUserRequset updateUserRequset) {
|
||||
UserPersonEntity userPerson = getClientUser();
|
||||
System.out.println(updateUserRequset.toString());
|
||||
if (StringUtils.isBlank(updateUserRequset.getNewPassword())) {
|
||||
return ResultVOUtils.error(500, "请输入新密码!");
|
||||
}
|
||||
if (StringUtils.isBlank(updateUserRequset.getConfirmPassword())) {
|
||||
return ResultVOUtils.error(500, "请输入确认密码!");
|
||||
}
|
||||
if (!updateUserRequset.getPassWord().equals(userPerson.getPassword())) {
|
||||
return ResultVOUtils.error(500, "当前密码输入错误!请重新输入!");
|
||||
}
|
||||
if (updateUserRequset.getNewPassword().equals(userPerson.getPassword())) {
|
||||
return ResultVOUtils.error(500, "新密码与旧密码重复!请重新修改!");
|
||||
}
|
||||
if (updateUserRequset.getNewPassword().equals(updateUserRequset.getConfirmPassword()) && updateUserRequset.getPassWord().equals(userPerson.getPassword())) {
|
||||
userPerson.setPassword(updateUserRequset.getNewPassword());
|
||||
userPersonService.updateById(userPerson);
|
||||
return ResultVOUtils.success("修改成功");
|
||||
} else {
|
||||
return ResultVOUtils.error(500, "新密码与确认密码不相同!请重新修改!");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue