基础库

login_repository.dart 4.1 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. import 'dart:convert';
  2. import 'package:flutter/cupertino.dart';
  3. import 'package:zhiying_comm/pages/login_page/model/login_style_model.dart';
  4. import 'package:zhiying_comm/zhiying_comm.dart';
  5. import '../login_style_util.dart';
  6. class LoginRepository {
  7. /// 获取页面数据
  8. Future<LoginStyleModel> fetchNetPageData() async {
  9. return await LoginStyleUtil.fetchNetPageData();
  10. }
  11. /// 获取缓存的页面数据
  12. Future<LoginStyleModel> fetchCachePageData() async {
  13. return await LoginStyleUtil.fetchCachePageData();
  14. }
  15. /// apple 登录
  16. Future<UserInfoModel> appleLogin({@required final String identityToken}) async {
  17. try{
  18. Map<String, String> params = {};
  19. params['token'] = identityToken;
  20. var result = await NetUtil.post('/api/v1/sign/fast/in',
  21. queryParameters: {'third_party_login': 'apple'},
  22. params: {'apple' : params},
  23. method: NetMethod.POST,
  24. );
  25. if(NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])){
  26. return UserInfoModel.fromJson(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]);
  27. }
  28. }catch(e,s){
  29. Logger.error(e,s);
  30. }
  31. return null;
  32. }
  33. /// 淘宝登录
  34. Future<UserInfoModel> aliLogin(
  35. {@required final String nick, @required final String avatarUrl, @required final String openId, final String openSid, final String topAccessToken, final String topAuthCode}) async {
  36. try {
  37. Map<String, String> params = {};
  38. params['nick_name'] = nick;
  39. params['avatar_url'] = avatarUrl;
  40. params['open_id'] = openId;
  41. params['access_token'] = topAccessToken;
  42. params['sid'] = openSid;
  43. params['auth_code'] = topAuthCode;
  44. var result = await NetUtil.post(
  45. '/api/v1/sign/fast/in',
  46. queryParameters: {'third_party_login': 'taobao'},
  47. params: {'taobao': params},
  48. method: NetMethod.POST,
  49. );
  50. if (NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) {
  51. return UserInfoModel.fromJson(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]);
  52. }
  53. } catch (e, s) {
  54. Logger.error(e, s);
  55. }
  56. return null;
  57. }
  58. /// 微信登录
  59. Future<UserInfoModel> weChatLogin(final Map<dynamic, dynamic> data) async {
  60. try {
  61. var dbInfo = jsonDecode(data['dbInfo']);
  62. Map<String, String> params = {};
  63. params['nickname'] = dbInfo['nickname']?.toString();
  64. params['gender'] = dbInfo['gender']?.toString() == '0' ? '1' : '2';
  65. params['avatar_url'] = dbInfo['icon']?.toString();
  66. params['open_id'] = dbInfo['userID']?.toString();
  67. params['unionid'] = dbInfo['unionid']?.toString();
  68. params['token'] = dbInfo['token']?.toString();
  69. var result = await NetUtil.post(
  70. '/api/v1/sign/fast/in',
  71. params: {'wechat' :params},
  72. queryParameters: {'third_party_login': 'wechat'},
  73. method: NetMethod.POST,
  74. );
  75. if(NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])){
  76. return UserInfoModel.fromJson(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]);
  77. }
  78. } catch (e, s) {
  79. Logger.error(e, s);
  80. }
  81. return null;
  82. }
  83. /// QQ 登录
  84. Future<UserInfoModel> qqLogin(final Map<dynamic, dynamic> data) async {
  85. try {
  86. var dbInfo = jsonDecode(data['dbInfo']);
  87. Map<String, String> params = {};
  88. params['nickname'] = dbInfo['nickname']?.toString();
  89. params['gender'] = dbInfo['gender']?.toString() == '0' ? '1' : '2';
  90. params['avatar_url'] = dbInfo['icon']?.toString();
  91. params['open_id'] = dbInfo['userID']?.toString();
  92. params['unionid'] = dbInfo['unionid']?.toString();
  93. params['token'] = dbInfo['token']?.toString();
  94. var result = await NetUtil.post(
  95. '/api/v1/sign/fast/in',
  96. params: {'qq': params},
  97. queryParameters: {'third_party_login': 'qq'},
  98. method: NetMethod.POST,
  99. );
  100. if (NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) {
  101. return UserInfoModel.fromJson(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]);
  102. }
  103. } catch (e, s) {
  104. Logger.error(e, s);
  105. }
  106. return null;
  107. }
  108. }