替换会员管理

dev
zhoushen 9 months ago
parent 4d51b010c5
commit be9bbb41a4

@ -0,0 +1,143 @@
package com.macro.mall.portal.controller; // 定义包名
import com.macro.mall.common.api.CommonResult; // 导入公共结果类
import com.macro.mall.model.UmsMember; // 导入会员模型类
import com.macro.mall.portal.service.UmsMemberService; // 导入会员服务类
import io.swagger.annotations.Api; // 导入Swagger Api注解
import io.swagger.annotations.ApiOperation; // 导入Swagger 操作注解
import io.swagger.v3.oas.annotations.tags.Tag; // 导入Swagger 标签注解
import org.springframework.beans.factory.annotation.Autowired; // 导入Spring自动注入注解
import org.springframework.beans.factory.annotation.Value; // 导入Spring属性注入注解
import org.springframework.stereotype.Controller; // 导入Spring控制器注解
import org.springframework.web.bind.annotation.RequestMapping; // 导入Spring请求映射注解
import org.springframework.web.bind.annotation.RequestMethod; // 导入Spring请求方法注解
import org.springframework.web.bind.annotation.RequestParam; // 导入Spring请求参数注解
import org.springframework.web.bind.annotation.ResponseBody; // 导入Spring响应体注解
import javax.servlet.http.HttpServletRequest; // 导入HttpServletRequest接口
import java.security.Principal; // 导入Principal接口
import java.util.HashMap; // 导入HashMap类
import java.util.Map; // 导入Map接口
/**
* Controller
* Created by macro on 2018/8/3.
*/
@Controller // 标识为Spring MVC的Controller
@Api(tags = "UmsMemberController") // Swagger注解定义API的标签
@Tag(name = "UmsMemberController", description = "会员登录注册管理") // Swagger注解定义API的标签和描述
@RequestMapping("/sso") // 定义请求的基础路径
public class UmsMemberController {
@Value("${jwt.tokenHeader}") // 注入配置文件中的tokenHeader属性
private String tokenHeader;
@Value("${jwt.tokenHead}") // 注入配置文件中的tokenHead属性
private String tokenHead;
@Autowired // 自动注入UmsMemberService
private UmsMemberService memberService;
/**
*
* @param username
* @param password
* @param telephone
* @param authCode
* @return
*/
@ApiOperation("会员注册") // Swagger注解定义API的操作描述
@RequestMapping(value = "/register", method = RequestMethod.POST) // 定义请求的路径和方法
@ResponseBody // 标识返回值直接作为响应体
public CommonResult register(@RequestParam String username, // 请求参数:用户名
@RequestParam String password, // 请求参数:密码
@RequestParam String telephone, // 请求参数:手机号
@RequestParam String authCode) { // 请求参数:验证码
memberService.register(username, password, telephone, authCode); // 调用服务层注册会员
return CommonResult.success(null,"注册成功"); // 返回注册成功结果
}
/**
*
* @param username
* @param password
* @return
*/
@ApiOperation("会员登录") // Swagger注解定义API的操作描述
@RequestMapping(value = "/login", method = RequestMethod.POST) // 定义请求的路径和方法
@ResponseBody // 标识返回值直接作为响应体
public CommonResult login(@RequestParam String username, // 请求参数:用户名
@RequestParam String password) { // 请求参数:密码
String token = memberService.login(username, password); // 调用服务层登录
if (token == null) {
return CommonResult.validateFailed("用户名或密码错误"); // 返回用户名或密码错误结果
}
Map<String, String> tokenMap = new HashMap<>(); // 创建tokenMap
tokenMap.put("token", token); // 放入token
tokenMap.put("tokenHead", tokenHead); // 放入tokenHead
return CommonResult.success(tokenMap); // 返回登录成功结果
}
/**
*
* @param principal
* @return
*/
@ApiOperation("获取会员信息") // Swagger注解定义API的操作描述
@RequestMapping(value = "/info", method = RequestMethod.GET) // 定义请求的路径和方法
@ResponseBody // 标识返回值直接作为响应体
public CommonResult info(Principal principal) { // 请求参数:当前用户
if(principal==null){
return CommonResult.unauthorized(null); // 如果用户为空,返回未授权结果
}
UmsMember member = memberService.getCurrentMember(); // 调用服务层获取当前会员
return CommonResult.success(member); // 返回会员信息结果
}
/**
*
* @param telephone
* @return
*/
@ApiOperation("获取验证码") // Swagger注解定义API的操作描述
@RequestMapping(value = "/getAuthCode", method = RequestMethod.GET) // 定义请求的路径和方法
@ResponseBody // 标识返回值直接作为响应体
public CommonResult getAuthCode(@RequestParam String telephone) { // 请求参数:手机号
String authCode = memberService.generateAuthCode(telephone); // 调用服务层生成验证码
return CommonResult.success(authCode,"获取验证码成功"); // 返回获取验证码成功结果
}
/**
*
* @param telephone
* @param password
* @param authCode
* @return
*/
@ApiOperation("会员修改密码") // Swagger注解定义API的操作描述
@RequestMapping(value = "/updatePassword", method = RequestMethod.POST) // 定义请求的路径和方法
@ResponseBody // 标识返回值直接作为响应体
public CommonResult updatePassword(@RequestParam String telephone, // 请求参数:手机号
@RequestParam String password, // 请求参数:新密码
@RequestParam String authCode) { // 请求参数:验证码
memberService.updatePassword(telephone,password,authCode); // 调用服务层修改密码
return CommonResult.success(null,"密码修改成功"); // 返回密码修改成功结果
}
/**
* token
* @param request
* @return token
*/
@ApiOperation(value = "刷新token") // Swagger注解定义API的操作描述
@RequestMapping(value = "/refreshToken", method = RequestMethod.GET) // 定义请求的路径和方法
@ResponseBody // 标识返回值直接作为响应体
public CommonResult refreshToken(HttpServletRequest request) { // 请求参数:请求对象
String token = request.getHeader(tokenHeader); // 从请求头中获取token
String refreshToken = memberService.refreshToken(token); // 调用服务层刷新token
if (refreshToken == null) {
return CommonResult.failed("token已经过期"); // 如果刷新的token为空返回token过期结果
}
Map<String, String> tokenMap = new HashMap<>(); // 创建tokenMap
tokenMap.put("token", refreshToken); // 放入刷新后的token
tokenMap.put("tokenHead", tokenHead); // 放入tokenHead
return CommonResult.success(tokenMap); // 返回刷新token成功结果
}
}
Loading…
Cancel
Save