1、NewsUserController
package com.csdn.headline.controller;
import com.csdn.headline.common.Result;
import com.csdn.headline.common.ResultCodeEnum;
import com.csdn.headline.pojo.NewsUser;
import com.csdn.headline.service.NewsUserService;
import com.csdn.headline.util.JwtHelper;
import com.csdn.headline.util.MD5Util;
import com.csdn.mymvc.annotation.*;
import java.util.Map;
@Controller
@RequestMapping("/user")
public class NewsUserController {
@Autowire
private NewsUserService newsUserService;
/**
* 登录方法
* @param newsUser 用户信息
* @return 登录结果
*/
@PostMapping("/login")
public Result login(@RequestBody NewsUser newsUser) {
// 根据用户名从数据库中获取用户信息
NewsUser newsUserFromDB = newsUserService.getNewsUserByUserName(newsUser.getUsername());
// 如果数据库中没有找到对应用户名的用户信息,则返回登录失败的结果
if (newsUserFromDB == null) {
return Result.build(null, ResultCodeEnum.USERNAME_ERROR);
} else {
// 获取数据库中用户密码
String pwdFromDB = newsUserFromDB.getUserPwd();
// 对输入的密码进行加密
String yourPwd = MD5Util.encrypt(newsUser.getUserPwd());
// 如果加密后的密码与数据库中的密码不一致,则返回登录失败的结果
if (!yourPwd.equals(pwdFromDB)) {
return Result.build(null, ResultCodeEnum.PASSWORD_ERROR);
} else {
String token = JwtHelper.createToken(newsUserFromDB.getUid().longValue());
// 清空数据库中用户的密码,完成登录并返回用户信息
newsUserFromDB.setUserPwd(null);
return Result.ok(Map.of("token", token));
}
}
}
}