package com.farriver.bwf.web.controller.admin; import com.farriver.bwf.common.model.ApiData; import com.farriver.bwf.common.utilities.VerificationCode; import com.farriver.bwf.data.transferobject.viewmodel.common.AuthBean; import com.farriver.bwf.data.transferobject.viewmodel.security.AccountMasterViewModel; import com.farriver.bwf.data.transferobject.viewmodel.security.PasswordViewModel; import com.farriver.bwf.service.security.SecurityService; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.*; import java.awt.image.BufferedImage; import java.io.IOException; @RestController @RequestMapping("/api/admin/oauth") public class AdminOauthController extends AdminControllerBase { @Resource private SecurityService securityService; @GetMapping("/getaccountwithrolesandpermissions") public ApiData GetAccountWithRolesAndPermissions(@RequestParam("accountid") String accountid) { return securityService.GetAccountWithRolesAndPermissions(accountid); } @PostMapping("/login") public ApiData LoginByAccountPassword(@RequestBody AuthBean authBean) { return securityService.LoginByAccountPassword(authBean); } @PostMapping("/loginBySMSCode") public ApiData LoginBySMSCode(@RequestBody AuthBean authBean) { return securityService.LoginBySMSCode(authBean); } @GetMapping("/logout") public ApiData GetLogout(@RequestParam("accountid") String accountid) { return securityService.Logout(accountid); } @GetMapping("/getaccountbycode") public ApiData LoadAccountByAccount(@RequestParam("account") String account) { return securityService.LoadAccountByAccount(account); } @GetMapping("/setverifycode") public void SetVerifyCode(@RequestParam("account") String account, @RequestParam("code") String code) { securityService.SetVerifyCode(account, code); } @GetMapping("/getverifycode") public void GetVerifyCode(@RequestParam("account") String account, HttpServletRequest request, HttpServletResponse resp) throws IOException { VerificationCode code = new VerificationCode(); BufferedImage image = code.getImage(); securityService.SetVerifyCode(account, code.getText()); VerificationCode.output(image, resp.getOutputStream()); } @GetMapping("/sendsmscode") public ApiData GetSMSCode(@RequestParam(defaultValue = "") String cellphone) { return securityService.GetSMSCode(cellphone); } @PostMapping("/register") public ApiData RegisterAccount(@RequestBody AccountMasterViewModel model) { return securityService.RegisterAccount(model); } @PostMapping("/resetpasswordbysms") public ApiData ResetPasswordSMSCode(@RequestBody PasswordViewModel model) { return securityService.ResetPasswordSMSCode(model); } @PostMapping("/resetpasswordbyemail") public ApiData ResetPasswordByEmail(@RequestBody PasswordViewModel model) { return securityService.ResetPasswordByEmail(model); } @PostMapping("/retrievepasswordbyemail") public ApiData RetrievePasswordByEmail(@RequestParam(defaultValue = "") String email, @RequestParam(defaultValue = "") String ticket) { return securityService.RetrievePasswordByEmail(email, ticket); } }