package com.rongyichuang.auth.api;
|
|
import com.rongyichuang.auth.dto.PhoneDecryptResponse;
|
import com.rongyichuang.auth.dto.WxLoginRequest;
|
import com.rongyichuang.auth.dto.WxLoginResponse;
|
import com.rongyichuang.auth.dto.LoginRequest;
|
import com.rongyichuang.auth.dto.LoginResponse;
|
import com.rongyichuang.auth.service.AuthService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.graphql.data.method.annotation.Argument;
|
import org.springframework.graphql.data.method.annotation.MutationMapping;
|
import org.springframework.stereotype.Controller;
|
|
/**
|
* 认证GraphQL API控制器
|
*/
|
@Controller
|
public class AuthGraphqlApi {
|
|
@Autowired
|
private AuthService authService;
|
|
/**
|
* 微信登录
|
*/
|
@MutationMapping
|
public WxLoginResponse wxLogin(@Argument WxLoginRequest input) {
|
try {
|
return authService.wxLogin(input);
|
} catch (Exception e) {
|
throw new RuntimeException("微信登录失败: " + e.getMessage(), e);
|
}
|
}
|
|
/**
|
* Web端登录
|
*/
|
@MutationMapping
|
public LoginResponse webLogin(@Argument LoginRequest input) {
|
try {
|
return authService.login(input);
|
} catch (Exception e) {
|
throw new RuntimeException("登录失败: " + e.getMessage(), e);
|
}
|
}
|
|
/**
|
* 解密微信手机号(旧版API)
|
*/
|
@MutationMapping
|
public PhoneDecryptResponse decryptPhoneNumber(
|
@Argument String encryptedData,
|
@Argument String iv,
|
@Argument String sessionKey) {
|
try {
|
return authService.decryptPhoneNumber(encryptedData, iv, sessionKey);
|
} catch (Exception e) {
|
throw new RuntimeException("手机号解密失败: " + e.getMessage(), e);
|
}
|
}
|
|
/**
|
* 获取微信手机号(新版API)
|
*/
|
@MutationMapping
|
public PhoneDecryptResponse getPhoneNumberByCode(@Argument String code) {
|
try {
|
return authService.getPhoneNumberByCode(code);
|
} catch (Exception e) {
|
throw new RuntimeException("获取手机号失败: " + e.getMessage(), e);
|
}
|
}
|
}
|