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(); } }