package com.caimei.controller.wechat; import com.alibaba.fastjson.JSONObject; import com.caimei.model.ResponseJson; import com.caimei.model.vo.WxClubUserVo; import com.caimei.service.wechat.LoginService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 微信机构用户登录API * * @author : Aslee * @date : 2021/5/11 */ @Api(tags = "微信机构用户登录API") @RestController @RequiredArgsConstructor @RequestMapping("/wx/user") public class LoginApi { private final LoginService loginService; @ApiOperation("服务号授权登录") @ApiImplicitParam(name = "params", value = "code登录凭证;appId;", required = true) @PostMapping("/login/authorization") public ResponseJson authorizationLogin(@RequestBody String params) { JSONObject parseObject = JSONObject.parseObject(params); String code = parseObject.getString("code"); String appId = parseObject.getString("appId"); return loginService.loginByAuthorization(code, appId); } @ApiOperation("登录验证码发送") @ApiImplicitParam(name = "params", value = "mobile:手机号;appId:公众号appId;type:1订阅号验证码,2服务号验证码", required = true) @PostMapping("/verify/code/send") public ResponseJson sendVerifyCode(@RequestBody String params) { JSONObject parseObject = JSONObject.parseObject(params); String mobile = parseObject.getString("mobile"); Integer authUserId = parseObject.getInteger("authUserId"); Integer type = parseObject.getInteger("type"); return loginService.sendVerifyCode(mobile, authUserId, type); } @ApiOperation("服务号验证码登录") @ApiImplicitParam(name = "params", value = "mobile:手机号;verifyCode:验证码;invitationCode:邀请码;accessToken;openId;appId", required = true) @PostMapping("/login/service/invitation/code") public ResponseJson invitationCode(@RequestBody String params) throws Exception { JSONObject parseObject = JSONObject.parseObject(params); String mobile = parseObject.getString("mobile"); String verifyCode = parseObject.getString("verifyCode"); String accessToken = parseObject.getString("accessToken"); String openId = parseObject.getString("openId"); String appId = parseObject.getString("appId"); return loginService.loginByVerifyCode(mobile, verifyCode, accessToken, openId, appId); } @ApiOperation("订阅号验证码登录") @ApiImplicitParam(name = "params", value = "mobile:手机号;verifyCode:验证码;openId;appId", required = true) @PostMapping("/login/subscribe/verify/code") public ResponseJson loginByVerifyCode(@RequestBody String params){ JSONObject parseObject = JSONObject.parseObject(params); String mobile = parseObject.getString("mobile"); String verifyCode = parseObject.getString("verifyCode"); Integer authUserId = parseObject.getInteger("authUserId"); return loginService.loginByVerifyCode(mobile, verifyCode, authUserId); } @ApiOperation("校验token是否失效") @PostMapping("/token/check") public ResponseJson checkToken(){ return ResponseJson.success("token有效"); } }