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.
202 lines
7.6 KiB
202 lines
7.6 KiB
package com.teaching.backend.controller.umsAdmin; |
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
import com.teaching.backend.common.CommonResult; |
|
import com.teaching.backend.common.BaseResponse; |
|
import com.teaching.backend.common.ResultUtils; |
|
import com.teaching.backend.model.dto.UmsAdminParam; |
|
import com.teaching.backend.model.dto.UpdateAdminPasswordParam; |
|
import com.teaching.backend.model.dto.umsAdmin.UmsStudentAndTeacherDTO; |
|
import com.teaching.backend.model.entity.umsAdmin.UmsAdmin; |
|
import com.teaching.backend.model.entity.umsAdmin.UmsRole; |
|
import com.teaching.backend.model.vo.courses.TeacherInfVO; |
|
import com.teaching.backend.service.umsAdmin.UmsAdminService; |
|
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; |
|
import java.util.stream.Collectors; |
|
|
|
|
|
/** |
|
* @Author:xhn |
|
* @Date:2024-05-30-18:15 |
|
* @Description:login |
|
*/ |
|
@RestController |
|
@Api(tags = "UmsAdminController") |
|
@RequestMapping("/api/user") |
|
@Slf4j |
|
public class UmsAdminController { |
|
@Value("${jwt.tokenHeader}") |
|
private String tokenHeader; |
|
@Value("${jwt.tokenHead}") |
|
private String tokenHead; |
|
@Autowired |
|
private UmsAdminService umsAdminService; |
|
@Autowired |
|
private UmsRoleService umsRoleService; |
|
|
|
|
|
@ApiOperation(value = "用户注册") |
|
@PostMapping("/register") |
|
public CommonResult<UmsAdmin> register(@Validated @RequestBody UmsAdminParam umsAdminParam) { |
|
if (umsAdminParam == null) { |
|
return CommonResult.failed(); |
|
} |
|
UmsAdmin umsAdmin = umsAdminService.register(umsAdminParam); |
|
return CommonResult.success(umsAdmin); |
|
} |
|
|
|
@ApiOperation(value = "用户名登录以后返回token") |
|
@PostMapping("/login") |
|
public CommonResult login(@Validated @RequestBody UmsAdmin umsAdmin) { |
|
String token = umsAdminService.login(umsAdmin.getUsername(), umsAdmin.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 = umsAdminService.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(umsAdminService.sendVerifyCode(phone)); |
|
} |
|
|
|
@ApiOperation(value = "手机号注册") |
|
@PostMapping("/phone/register") |
|
public CommonResult<UmsAdmin> phoneRegister(@Validated @RequestBody UmsAdminParam umsAdminParam) { |
|
if (umsAdminParam == null) { |
|
return CommonResult.failed(); |
|
} |
|
UmsAdmin umsAdmin = umsAdminService.phoneRegister(umsAdminParam); |
|
return CommonResult.success(umsAdmin); |
|
} |
|
|
|
@ApiOperation(value = "刷新token") |
|
@GetMapping("/refreshToken") |
|
public CommonResult refreshToken(HttpServletRequest request) { |
|
String token = request.getHeader(tokenHeader); |
|
String refreshToken = umsAdminService.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(); |
|
UmsAdmin umsAdmin = umsAdminService.getAdminByUsername(username); |
|
Map<String, Object> data = new HashMap<>(); |
|
data.put("id",umsAdmin.getId()); |
|
data.put("username", umsAdmin.getUsername()); |
|
data.put("menus", umsRoleService.getMenuList(umsAdmin.getId())); |
|
data.put("phone", umsAdmin.getPhone()); |
|
data.put("nickName", umsAdmin.getNickName()); |
|
data.put("icon", umsAdmin.getIcon()); |
|
List<UmsRole> roleList = umsAdminService.getRoleList(umsAdmin.getId()); |
|
if(CollUtil.isNotEmpty(roleList)){ |
|
List<String> roles = roleList.stream().map(UmsRole::getName).collect(Collectors.toList()); |
|
data.put("roles",roles); |
|
} |
|
return CommonResult.success(data); |
|
} |
|
|
|
@ApiOperation("修改指定用户信息") |
|
@PostMapping("/update") |
|
public CommonResult updateUms(@RequestBody UmsAdmin umsadmin) { |
|
boolean count = umsAdminService.updateUms(umsadmin); |
|
if (count == true) { |
|
return CommonResult.success(count); |
|
} |
|
return CommonResult.failed(); |
|
} |
|
|
|
@ApiOperation("修改指定用户密码") |
|
@PostMapping("/updatePassword") |
|
public CommonResult updatePassword(@Validated @RequestBody UpdateAdminPasswordParam updatePasswordParam) { |
|
int status = umsAdminService.updatePassword(updatePasswordParam); |
|
if (status > 0) { |
|
return CommonResult.success(status); |
|
} else if (status == -1) { |
|
return CommonResult.failed("提交参数不合法"); |
|
} else if (status == -2) { |
|
return CommonResult.failed("找不到该用户"); |
|
} else if (status == -3) { |
|
return CommonResult.failed("旧密码错误"); |
|
} else { |
|
return CommonResult.failed(); |
|
} |
|
} |
|
|
|
@ApiOperation("获取指定个人信息") |
|
@PostMapping("/personal/info") |
|
public CommonResult getByIdPersonalInfo(@RequestParam String id) { |
|
if (id == null){ |
|
return CommonResult.failed("参数为空"); |
|
} |
|
Object count = umsAdminService.getByIdPersonalInfo(id); |
|
if (count == null) { |
|
return CommonResult.failed(); |
|
} |
|
return CommonResult.success(count); |
|
} |
|
|
|
@ApiOperation("修改指定个人信息") |
|
@PostMapping("/update/PersonalInfo") |
|
public CommonResult updatePersonalInfo(@RequestBody UmsStudentAndTeacherDTO umsStudentAndTeacherDTO) { |
|
boolean count = umsAdminService.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 = umsAdminService.getTeacherInfList(); |
|
return ResultUtils.success(teacherInfVO); |
|
} |
|
|
|
}
|
|
|