package com.sckj.front.controller; import com.sckj.common.aop.NotLogin; import com.sckj.common.core.AjaxResult; import com.sckj.front.TapholeFrontThreadLocal; import com.sckj.front.service.ILoginService; import com.sckj.front.validate.login.*; import com.sckj.front.vo.login.LoginTokenVo; import com.sckj.front.vo.login.LoginUrlsVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpSession; import javax.validation.constraints.NotNull; @Slf4j @RestController @RequestMapping("/api/login") @Api(tags = "登录管理") public class LoginController { @Resource ILoginService iLoginService; @NotLogin @PostMapping("/register") @ApiOperation(value="注册账号") public AjaxResult register(@Validated @RequestBody RegisterValidate registerValidate) { Integer terminal = TapholeFrontThreadLocal.getTerminal(); String username = registerValidate.getUsername(); String password = registerValidate.getPassword(); iLoginService.register(username, password, terminal); return AjaxResult.success(); } @NotLogin @PostMapping("/accountLogin") @ApiOperation(value="账号登录") public AjaxResult accountLogin(@Validated @RequestBody LoginPwdValidate loginPwdValidate) { Integer terminal = TapholeFrontThreadLocal.getTerminal(); String username = loginPwdValidate.getUsername(); String password = loginPwdValidate.getPassword(); LoginTokenVo vo = iLoginService.accountLogin(username, password, terminal); return AjaxResult.success(vo); } @NotLogin @PostMapping("/mobileLogin") @ApiOperation(value="手机登录") public AjaxResult mobileLogin(@Validated @RequestBody LoginPhoneValidate loginPhoneValidate) { Integer terminal = TapholeFrontThreadLocal.getTerminal(); String mobile = loginPhoneValidate.getMobile(); String code = loginPhoneValidate.getCode(); LoginTokenVo vo = iLoginService.mobileLogin(mobile, code, terminal); return AjaxResult.success(vo); } @NotLogin @PostMapping("/mnpLogin") @ApiOperation(value="微信登录") public AjaxResult mnpLogin(@Validated @RequestBody LoginCodeValidate loginCodeValidate) { Integer terminal = TapholeFrontThreadLocal.getTerminal(); String code = loginCodeValidate.getCode(); LoginTokenVo vo = iLoginService.mnpLogin(code, terminal); return AjaxResult.success(vo); } @NotLogin @PostMapping("/oaLogin") @ApiOperation(value="公众号登录") public AjaxResult oaLogin(@Validated @RequestBody LoginCodeValidate loginCodeValidate) { Integer terminal = TapholeFrontThreadLocal.getTerminal(); String code = loginCodeValidate.getCode(); LoginTokenVo vo = iLoginService.officeLogin(code, terminal); return AjaxResult.success(vo); } @NotLogin @GetMapping("/oaCodeUrl") @ApiOperation(value="公众号链接") public AjaxResult oaCodeUrl(@Validated @NotNull() @RequestParam("url") String url) { LoginUrlsVo vo = new LoginUrlsVo(); vo.setUrl(iLoginService.oaCodeUrl(url)); return AjaxResult.success(vo); } @NotLogin @GetMapping("/scanCodeUrl") @ApiOperation(value="PC扫码链接") public AjaxResult scanCodeUrl(@Validated @NotNull() @RequestParam("url") String url, HttpSession session) { String qrcodeUrl = iLoginService.scanCodeUrl(url, session); LoginUrlsVo vo = new LoginUrlsVo(); vo.setUrl(qrcodeUrl); return AjaxResult.success(vo); } @NotLogin @PostMapping("/scanLogin") @ApiOperation(value="PC扫码登录") public AjaxResult scanLogin(@Validated @RequestBody LoginScanValidate loginScanValidate, HttpSession session) { Integer terminal = TapholeFrontThreadLocal.getTerminal(); String code = loginScanValidate.getCode(); String state = loginScanValidate.getState(); LoginTokenVo vo = iLoginService.scanLogin(code, state, terminal, session); return AjaxResult.success(vo); } }