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 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 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 tokenMap = new HashMap<>(); tokenMap.put("token", token); tokenMap.put("tokenHead", tokenHead); return CommonResult.success(tokenMap); } /** * 发送短信 * @param phone * @return */ @ApiOperation(value = "发送短信返回验证码") @PostMapping("/code") public CommonResult sendVerifyCode(@RequestParam("phone")String phone){ return CommonResult.success(umsUserService.sendVerifyCode(phone)); } @ApiOperation(value = "手机号注册") @PostMapping("/phone/register") public CommonResult 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 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 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> getTeacherInfList(){ List teacherInfVO = umsUserService.getTeacherInfList(); return ResultUtils.success(teacherInfVO); } }