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.
118 lines
3.8 KiB
118 lines
3.8 KiB
package com.example.controller;
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.example.common.Result;
|
|
import com.example.common.enums.ResultCodeEnum;
|
|
import com.example.common.enums.RoleEnum;
|
|
import com.example.entity.Account;
|
|
import com.example.service.AdminService;
|
|
import com.example.service.BusinessService;
|
|
import com.example.service.UserService;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
/**
|
|
* 基础前端接口
|
|
*/
|
|
@RestController
|
|
public class WebController {
|
|
|
|
@Resource
|
|
private AdminService adminService;
|
|
@Resource
|
|
private BusinessService businessService;
|
|
@Resource
|
|
private UserService userService;
|
|
|
|
/**
|
|
* 根路径访问
|
|
*
|
|
* @return 成功信息
|
|
*/
|
|
@GetMapping("/")
|
|
public Result hello() {
|
|
return Result.success("访问成功");
|
|
}
|
|
|
|
/**
|
|
* 用户登录接口
|
|
*
|
|
* @param account 用户账户信息,包括用户名、密码和角色
|
|
* @return 登录结果,包含用户信息
|
|
*/
|
|
@PostMapping("/login")
|
|
public Result login(@RequestBody Account account) {
|
|
// 检查登录参数是否完整
|
|
if (ObjectUtil.isEmpty(account.getUsername()) || ObjectUtil.isEmpty(account.getPassword())
|
|
|| ObjectUtil.isEmpty(account.getRole())) {
|
|
return Result.error(ResultCodeEnum.PARAM_LOST_ERROR);
|
|
}
|
|
// 根据用户角色调用相应的登录方法
|
|
if (RoleEnum.ADMIN.name().equals(account.getRole())) {
|
|
account = adminService.login(account);
|
|
}
|
|
if (RoleEnum.BUSINESS.name().equals(account.getRole())){
|
|
account = businessService.login(account);
|
|
}
|
|
if(RoleEnum.USER.name().equals(account.getRole())){
|
|
account = userService.login(account);
|
|
}
|
|
return Result.success(account);
|
|
}
|
|
|
|
/**
|
|
* 用户注册接口
|
|
*
|
|
* @param account 用户账户信息,包括用户名、密码和角色
|
|
* @return 注册结果
|
|
*/
|
|
@PostMapping("/register")
|
|
public Result register(@RequestBody Account account) {
|
|
// 检查注册参数是否完整
|
|
if (StrUtil.isBlank(account.getUsername()) || StrUtil.isBlank(account.getPassword())
|
|
|| ObjectUtil.isEmpty(account.getRole())) {
|
|
return Result.error(ResultCodeEnum.PARAM_LOST_ERROR);
|
|
}
|
|
// 根据用户角色调用相应的注册方法
|
|
if (RoleEnum.ADMIN.name().equals(account.getRole())) {
|
|
adminService.register(account);
|
|
}
|
|
if (RoleEnum.BUSINESS.name().equals(account.getRole())) {
|
|
businessService.register(account);
|
|
}
|
|
if (RoleEnum.USER.name().equals(account.getRole())) {
|
|
userService.register(account);
|
|
}
|
|
return Result.success();
|
|
}
|
|
|
|
/**
|
|
* 修改密码接口
|
|
*
|
|
* @param account 用户账户信息,包括用户名、当前密码和新密码
|
|
* @return 修改密码结果
|
|
*/
|
|
@PutMapping("/updatePassword")
|
|
public Result updatePassword(@RequestBody Account account) {
|
|
// 检查修改密码参数是否完整
|
|
if (StrUtil.isBlank(account.getUsername()) || StrUtil.isBlank(account.getPassword())
|
|
|| ObjectUtil.isEmpty(account.getNewPassword())) {
|
|
return Result.error(ResultCodeEnum.PARAM_LOST_ERROR);
|
|
}
|
|
// 根据用户角色调用相应的修改密码方法
|
|
if (RoleEnum.ADMIN.name().equals(account.getRole())) {
|
|
adminService.updatePassword(account);
|
|
}
|
|
if (RoleEnum.BUSINESS.name().equals(account.getRole())) {
|
|
businessService.updatePassword(account);
|
|
}
|
|
if (RoleEnum.USER.name().equals(account.getRole())) {
|
|
userService.updatePassword(account);
|
|
}
|
|
return Result.success();
|
|
}
|
|
|
|
}
|