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); } } }