图谱-后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

189 lines
7.0 KiB

package com.teaching.backend.controller.umsAdmin;
import com.teaching.backend.common.CommonResult;
import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.common.ResultUtils;
import com.teaching.backend.model.dto.umsAdmin.UmsUserParam;
import com.teaching.backend.model.dto.umsAdmin.UpdateUserPasswordParam;
import com.teaching.backend.model.dto.umsAdmin.UmsStudentAndTeacherDTO;
import com.teaching.backend.model.entity.umsAdmin.UmsUser;
import com.teaching.backend.model.vo.courses.TeacherInfVO;
import com.teaching.backend.service.umsAdmin.UmsUserService;
import com.teaching.backend.service.umsAdmin.UmsRoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.security.Principal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Author:xhn
* @Date:2024-05-30-18:15
* @Description:login
*/
@RestController
@Api(tags = "UmsAdminController")
@RequestMapping("/api/user")
@Slf4j
public class UmsUserController {
@Value("${jwt.tokenHeader}")
private String tokenHeader;
@Value("${jwt.tokenHead}")
private String tokenHead;
@Autowired
private UmsUserService umsUserService;
@Autowired
private UmsRoleService umsRoleService;
@ApiOperation(value = "用户注册")
@PostMapping("/register")
public CommonResult<UmsUser> register(@Validated @RequestBody UmsUserParam umsUserParam) {
if (umsUserParam == null) {
return CommonResult.failed();
}
UmsUser umsUser = umsUserService.register(umsUserParam);
return CommonResult.success(umsUser);
}
@ApiOperation(value = "用户名登录以后返回token")
@PostMapping("/login")
public CommonResult login(@Validated @RequestBody UmsUser umsUser) {
String token = umsUserService.login(umsUser.getUsername(), umsUser.getPassword());
if (token == null) {
return CommonResult.validateFailed("用户名或密码错误");
}
Map<String, String> tokenMap = new HashMap<>();
tokenMap.put("token", token);
tokenMap.put("tokenHead", tokenHead);
return CommonResult.success(tokenMap);
}
@ApiOperation(value = "手机号登录以后返回token")
@PostMapping("/phone/login")
public CommonResult phoneLogin(@RequestParam("phone")String phone) {
String token = umsUserService.phoneLogin(phone);
if (token == null) {
return CommonResult.validateFailed("手机号不存在!");
}
Map<String, String> tokenMap = new HashMap<>();
tokenMap.put("token", token);
tokenMap.put("tokenHead", tokenHead);
return CommonResult.success(tokenMap);
}
/**
* 发送短信
* @param phone
* @return
*/
@ApiOperation(value = "发送短信返回验证码")
@PostMapping("/code")
public CommonResult<String> sendVerifyCode(@RequestParam("phone")String phone){
return CommonResult.success(umsUserService.sendVerifyCode(phone));
}
@ApiOperation(value = "手机号注册")
@PostMapping("/phone/register")
public CommonResult<UmsUser> phoneRegister(@Validated @RequestBody UmsUserParam umsAdminParam) {
if (umsAdminParam == null) {
return CommonResult.failed();
}
UmsUser umsUser = umsUserService.phoneRegister(umsAdminParam);
return CommonResult.success(umsUser);
}
@ApiOperation(value = "刷新token")
@GetMapping("/refreshToken")
public CommonResult refreshToken(HttpServletRequest request) {
String token = request.getHeader(tokenHeader);
String refreshToken = umsUserService.refreshToken(token);
if (refreshToken == null) {
return CommonResult.failed("token已经过期!");
}
Map<String, String> tokenMap = new HashMap<>();
tokenMap.put("token", refreshToken);
tokenMap.put("tokenHead", tokenHead);
return CommonResult.success(tokenMap);
}
@ApiOperation(value = "获取当前登录用户信息")
@GetMapping ("/info")
public CommonResult getAdminInfo(Principal principal) {
if(principal == null){
return CommonResult.unauthorized("用户名为空");
}
String username = principal.getName();
UmsUser umsUser = umsUserService.getUserByUsername(username);
Map<String, Object> data = new HashMap<>();
data.put("id",umsUser.getId());
data.put("username", umsUser.getUsername());
data.put("permissions", umsRoleService.getPermissionList(umsUser.getRoleId()));
data.put("phone", umsUser.getPhone());
data.put("nickName", umsUser.getNickName());
data.put("icon", umsUser.getIcon());
data.put("roles",umsRoleService.getRoleList(umsUser.getRoleId()));
return CommonResult.success(data);
}
@ApiOperation("修改指定用户信息")
@PostMapping("/update")
public CommonResult updateUms(@RequestBody UmsUser umsUser) {
boolean count = umsUserService.updateUms(umsUser);
if (count == true) {
return CommonResult.success(count);
}
return CommonResult.failed();
}
@ApiOperation("修改指定用户密码")
@PostMapping("/updatePassword")
public CommonResult updatePassword(@Validated @RequestBody UpdateUserPasswordParam updatePasswordParam) {
int status = umsUserService.updatePassword(updatePasswordParam);
if (status == 1) {
return CommonResult.success(status);
} else {
return CommonResult.failed();
}
}
@ApiOperation("获取指定个人信息")
@PostMapping("/personal/info")
public CommonResult getByIdPersonalInfo(@RequestParam String id) {
if (id == null){
return CommonResult.failed("参数为空");
}
Object count = umsUserService.getByIdPersonalInfo(id);
if (count == null) {
return CommonResult.failed();
}
return CommonResult.success(count);
}
@ApiOperation("修改指定个人信息")
@PostMapping("/update/PersonalInfo")
public CommonResult updatePersonalInfo(@RequestBody UmsStudentAndTeacherDTO umsStudentAndTeacherDTO) {
boolean count = umsUserService.updatePersonalInfo(umsStudentAndTeacherDTO);
if (count == true) {
return CommonResult.success("修改成功");
}
return CommonResult.failed();
}
@ApiOperation("获取教师信息列表,关联教师的username和name")
@GetMapping("/get_teacherinf_list")
public BaseResponse<List<TeacherInfVO>> getTeacherInfList(){
List<TeacherInfVO> teacherInfVO = umsUserService.getTeacherInfList();
return ResultUtils.success(teacherInfVO);
}
}