package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.exception.ErrorCode; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.LoginByPassWordFormDTO; import com.epmet.dto.form.LoginByWxCodeFormDTO; import com.epmet.dto.form.ResiWxPhoneFormDTO; import com.epmet.dto.result.UserTokenResultDTO; import com.epmet.service.CaptchaService; import com.epmet.service.LoginService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.imageio.ImageIO; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.IOException; /** * @Description 通用登录接口 * @Author yinzuomei * @Date 2020/3/14 13:58 */ @RestController @RequestMapping("login") public class LoginController { @Autowired private CaptchaService captchaService; @Autowired private LoginService loginService; /** * @return void * @param response * @param uuid * @Author yinzuomei * @Description 运营端管理后台-生成验证码 * @Date 2020/3/17 16:08 **/ @GetMapping("captcha") public void captcha(HttpServletResponse response, String uuid) throws IOException { //uuid不能为空 AssertUtils.isBlank(uuid, ErrorCode.IDENTIFIER_NOT_NULL); //生成图片验证码 BufferedImage image = captchaService.create(uuid); response.setHeader("Cache-Control", "no-store, no-cache"); response.setContentType("image/jpeg"); ServletOutputStream out = response.getOutputStream(); ImageIO.write(image, "jpg", out); out.close(); } /** * @param formDTO * @return com.epmet.commons.tools.utils.Result * @Author yinzuomei * @Description 居民端微信小程序登录 * @Date 2020/3/14 14:35 **/ @PostMapping("/resiwxmp/loginbywxcode") public Result loginByWxCode(@RequestBody LoginByWxCodeFormDTO formDTO) { //效验数据 ValidatorUtils.validateEntity(formDTO); return loginService.loginByWxCode(formDTO); } /** * @param formDTO * @return com.epmet.commons.tools.utils.Result * @Author yinzuomei * @Description 手机号+密码登录接口 * @Date 2020/3/14 19:46 **/ @PostMapping("/operweb/loginbypassword") public Result loginByPassword(@RequestBody LoginByPassWordFormDTO formDTO) { //效验数据 ValidatorUtils.validateEntity(formDTO); Result result = loginService.loginByPassword(formDTO); return result; } /** * @param request * @return com.epmet.commons.tools.utils.Result * @Author yinzuomei * @Description 退出登录 * @Date 2020/3/18 22:43 **/ @PostMapping(value = "logout") public Result logout(@LoginUser TokenDto tokenDto, HttpServletRequest request) { return loginService.logoutByToken(tokenDto); } /** * @param formDTO * @return com.epmet.commons.tools.utils.Result * @author yinzuomei * @description 获取用户微信绑定的手机号 * @Date 2020/7/2 14:33 **/ @PostMapping("getresiwxphone") public Result getResiWxPhone(@RequestBody ResiWxPhoneFormDTO formDTO) { String phone = loginService.getResiWxPhone(formDTO); if (StringUtils.isNotBlank(phone) && !"null".equals(phone)) { return new Result().ok(phone); } return new Result().ok(""); } }