增加用户体系
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