From 25bd09ea11776207fd25c031d633675b8ac5c055 Mon Sep 17 00:00:00 2001 From: fmk Date: Thu, 30 Sep 2021 16:47:26 +0800 Subject: [PATCH] safety --- assets/image/2x/icon_mine_promotion_code.png | Bin 0 -> 1965 bytes assets/image/2x/icon_sign_success.png | Bin 0 -> 14782 bytes assets/image/3x/icon_mine_promotion_code.png | Bin 0 -> 3320 bytes assets/image/3x/icon_sign_success.png | Bin 0 -> 29193 bytes assets/image/icon_mine_promotion_code.png | Bin 0 -> 957 bytes assets/image/icon_sign_success.png | Bin 0 -> 6419 bytes lib/retrofit/data/base_data.g.dart | 37 + lib/retrofit/data/page.g.dart | 41 + lib/retrofit/retrofit_api.g.dart | 1208 ++++++++++++++++++ 9 files changed, 1286 insertions(+) create mode 100644 assets/image/2x/icon_mine_promotion_code.png create mode 100644 assets/image/2x/icon_sign_success.png create mode 100644 assets/image/3x/icon_mine_promotion_code.png create mode 100644 assets/image/3x/icon_sign_success.png create mode 100644 assets/image/icon_mine_promotion_code.png create mode 100644 assets/image/icon_sign_success.png create mode 100644 lib/retrofit/data/base_data.g.dart create mode 100644 lib/retrofit/data/page.g.dart create mode 100644 lib/retrofit/retrofit_api.g.dart diff --git a/assets/image/2x/icon_mine_promotion_code.png b/assets/image/2x/icon_mine_promotion_code.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f43839493cc82a7b3d338cbc12f37d1406925c GIT binary patch literal 1965 zcmV;e2U7TnP)Px+XGugsRA@u(T5XJ6RT+NXGc)C5fl>*jMMZ_C;3}mv_ud(Il|mDv)+R;8;zzJM zo2viRLXjvTX^n{~KcxOpOQLC~C`O3*9aE~}no6g0-#fdoXl0X1tFfh#E!u9&Zguy( z=AGWz+}-T#+?^eE+h)$c-Fwb^-se2${X9ds$Om2I_|O7)p)=fKu*Kkcegds4S|!NY z*`2Wo*$hD^0Sjm1f5oDo$b7dqzw@cdgs0Q#Yg4JzmqlbPfF%G-oJ&DOzY~$|%)EcP z`LP&G7rHhQ@EC{^keNV>Y)v90=EvnDZ@U*;w_5#@%jMdwwZ8>$eH>7e=7cF+K7k>k!K-dKyma_0!)vXzKaa@xuZTQHL?d%%`wS6%prRJhzkT07r{kni|B6Nd zf{MNQU7c~2sLo3lx*sOU*T)&00^sQA=;FSzh??vkAi4ZHIostovH7<^idIcAd;%B4T9h|ab!D=bGb2Q06;Z8 zJI>72+;oD7x|vL-koN(2=T?aj(RRT6+6u)=w#kg$42y39xH8;XM$OogOTRsEhloV$ z!`DS*uQ6tLI*=lwI;%c6RpkNr6*J$}P^y+GbUz4^ZR2$yL1t4ELTF!azHmo-d;5a6 zwl+N zb*;5~iD*%SvMmuk*wD9OXAoWQIL-~m zn1=y;7{GNg*;Mn`M?~N7egE0%^qG;e&aV8eVyF{Vu8Ip%NUQ-~yzOgl)BE@DpHR^|j-#RAWVu`(jL0*N<17d8O1WGCD?%H{H7`pxsaC!ozP;D7p^nSU6D zmc0NphMorSu^eo9x04V_4;?N+kdugJu+4ueJVVHP_ zi2N-gdytv0&15nw5{ZQFQPuBdX1>XF-E~Cti^#q`%)ENG0RI8tttv!BjtvbB-7+vR zFcbq^WlA=iy-h?^*~%cIpZLD74JTzuGZM{|szaFB#G-U#4OgsE4VdGQ4YFq_Q|iAdG+ zjspxqj@zJ?Pt3fd7Qk#a`)LtT+pLa&nZrDJ>SLc12B!n4YN@w0#++g1FY&IfE^=J9sqR1oJKpyzo@h)BKYsYD|2{bI2=Tnk`m)5}HV9uYYd1i_Q_ zoLwA%CotZ!Xv_v{F&I9;93-M;p@)519nfUQ1mG|;tG((-mwJ$_89AW0mLZ*HsBA?VaC?cN=g5dFG%a&cTXwf1qi#h$ovyW2sa+I7J-%BQxK5!2#^(=y>z!=%~JGX`-Ocs-oy}&uM5GXz-yZ~lzV^<_ z$xKMLH6JCS7l^2CvMnNNL;7HL`HALtA^EnKO># zEH%dHEAoQy|9@iURgU9ij4|5ss5nO=`hoBJ8)gMCo6X*Ct?ePASU>Nm!|W@`Wb)n7 za>;ewHAJL6nN!A?&FU>fcC~N%Ab`QKv9bGldwVr!h3mSXC!)_1(V>x%kxlhph3kfi z&}GlI;MGdxKgO7KzVGjgd%c@6FBZV?L~j?7`?Sg-qH1MOSBJ1L-IGivzg8?3^*YY! zhz)Q~wQAyKEr3lt%y|*jVsKuLy@{J%^bGzV2jfe1T1fs(00000NkvXXu0mjfU&z!f literal 0 HcmV?d00001 diff --git a/assets/image/2x/icon_sign_success.png b/assets/image/2x/icon_sign_success.png new file mode 100644 index 0000000000000000000000000000000000000000..176b7014ceb4f4e4bcb1137defcc688873c9da2c GIT binary patch literal 14782 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 YKbKttI1G*qIRF3v07*qoM6N<$f_M@bNB{r; literal 0 HcmV?d00001 diff --git a/assets/image/3x/icon_mine_promotion_code.png b/assets/image/3x/icon_mine_promotion_code.png new file mode 100644 index 0000000000000000000000000000000000000000..10dfa2e160ed7341955f9123d6c2ff1a8e1e1f72 GIT binary patch literal 3320 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

dN^`hQb(KfV6M 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 _$BaseDataFromJson( + Map json, + T Function(Object json) fromJsonT, +) { + return BaseData() + ..code = json['code'] as int + ..data = fromJsonT(json['data']) + ..extra = json['extra'] + ..isError = json['isError'] as bool + ..isSuccess = json['isSuccess'] as bool + ..msg = json['msg'] as String + ..path = json['path'] as String + ..timestamp = json['timestamp'] as String; +} + +Map _$BaseDataToJson( + BaseData instance, + Object Function(T value) toJsonT, +) => + { + 'code': instance.code, + 'data': toJsonT(instance.data), + 'extra': instance.extra, + 'isError': instance.isError, + 'isSuccess': instance.isSuccess, + 'msg': instance.msg, + 'path': instance.path, + 'timestamp': instance.timestamp, + }; diff --git a/lib/retrofit/data/page.g.dart b/lib/retrofit/data/page.g.dart new file mode 100644 index 00000000..e40a14ae --- /dev/null +++ b/lib/retrofit/data/page.g.dart @@ -0,0 +1,41 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'page.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +PageInfo _$PageInfoFromJson( + Map json, + D Function(Object json) fromJsonD, +) { + return PageInfo() + ..pageNum = json['pageNum'] as int + ..current = json['current'] + ..pageSize = json['pageSize'] as int + ..size = json['size'] + ..pages = json['pages'] + ..hasPreviousPage = json['hasPreviousPage'] as bool + ..hasNextPage = json['hasNextPage'] as bool + ..total = json['total'] as String + ..list = (json['list'] as List)?.map(fromJsonD)?.toList() + ..records = (json['records'] as List)?.map(fromJsonD)?.toList(); +} + +Map _$PageInfoToJson( + PageInfo instance, + Object Function(D value) toJsonD, +) => + { + 'pageNum': instance.pageNum, + 'current': instance.current, + 'pageSize': instance.pageSize, + 'size': instance.size, + 'pages': instance.pages, + 'hasPreviousPage': instance.hasPreviousPage, + 'hasNextPage': instance.hasNextPage, + 'total': instance.total, + 'list': instance.list?.map(toJsonD)?.toList(), + 'records': instance.records?.map(toJsonD)?.toList(), + }; diff --git a/lib/retrofit/retrofit_api.g.dart b/lib/retrofit/retrofit_api.g.dart new file mode 100644 index 00000000..f75cf97d --- /dev/null +++ b/lib/retrofit/retrofit_api.g.dart @@ -0,0 +1,1208 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'retrofit_api.dart'; + +// ************************************************************************** +// RetrofitGenerator +// ************************************************************************** + +class _ApiService implements ApiService { + _ApiService(this._dio, {this.baseUrl}) { + ArgumentError.checkNotNull(_dio, '_dio'); + baseUrl ??= 'https://pos.platform.lotus-wallet.com/app/'; + } + + final Dio _dio; + + String baseUrl; + + @override + Future> upload(data, folderId) async { + ArgumentError.checkNotNull(data, 'data'); + ArgumentError.checkNotNull(folderId, 'folderId'); + const _extra = {}; + final queryParameters = {}; + final _data = FormData(); + _data.files.add(MapEntry( + 'file', + MultipartFile.fromFileSync(data.path, + filename: data.path.split(Platform.pathSeparator).last))); + if (folderId != null) { + _data.fields.add(MapEntry('folderId', folderId.toString())); + } + final _result = await _dio.request>('/file/upload', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => UploadResult.fromJson(json), + ); + return value; + } + + @override + Future searchPoi(lat, lng, keywords, size, page) async { + ArgumentError.checkNotNull(lat, 'lat'); + ArgumentError.checkNotNull(lng, 'lng'); + ArgumentError.checkNotNull(keywords, 'keywords'); + ArgumentError.checkNotNull(size, 'size'); + ArgumentError.checkNotNull(page, 'page'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request( + 'https://restapi.amap.com/v3/place/around?key=542b46afa8e4b88fe1eb3c4d0ba0872f&location=$lat,$lng&keywords=$keywords&offset={size}&page={page}&extensions=all', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = _result.data; + return value; + } + + @override + Future> memberLogin(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/auth/platform/memberLogin', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future> sendVerify(mobile) async { + ArgumentError.checkNotNull(mobile, 'mobile'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/auth/sendVerify/$mobile', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future>> creditGoods(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/creditGoods/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => PageInfo.fromJson( + json, + (json) => Goods.fromJson(json), + ), + ); + return value; + } + + @override + Future>> goodsCategory(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/creditGoodsCategory/page', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => PageInfo.fromJson( + json, + (json) => GoodsCategory.fromJson(json), + ), + ); + return value; + } + + @override + Future> creditGoodsById(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/creditGoods/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => Goods.fromJson(json), + ); + return value; + } + + @override + Future> queryInfo() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/member/info', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => UserInfo.fromJson(json), + ); + return value; + } + + @override + Future> editInfo(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/member/editMemberInfo', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future> signInInfo() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/member/signInInfo', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => SignInfo.fromJson(json), + ); + return value; + } + + @override + Future> signIn() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/member/signIn', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future> recharge(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/wallet/recharge', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => WxPay.fromJson(json), + ); + return value; + } + + @override + Future> receiveCoupon(couponId) async { + ArgumentError.checkNotNull(couponId, 'couponId'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/coupon/receive?couponId=$couponId', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future>> creditOrderList(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/creditOrder/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => PageInfo.fromJson( + json, + (json) => ExchangeOrder.fromJson(json), + ), + ); + return value; + } + + @override + Future> creditOrder(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/creditOrder/create', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future> addAddress(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/address/add', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future> deleteAddress(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/address/delete', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future> queryAddress(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/address/detail/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future>> queryMemberAddress() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/address/queryMemberAddress', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => (json as List) + .map

((i) => Address.fromJson(i as Map)) + .toList()); + return value; + } + + @override + Future> updateAddress(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/address/update', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future>> queryCoupon(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/coupon/centreList', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => PageInfo.fromJson( + json, + (json) => Coupon.fromJson(json), + ), + ); + return value; + } + + @override + Future>> queryCard(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/coupon/packageList', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => PageInfo.fromJson( + json, + (json) => Coupon.fromJson(json), + ), + ); + return value; + } + + @override + Future>> queryStore(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/store/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => (json as List) + .map((i) => Store.fromJson(i as Map)) + .toList()); + return value; + } + + @override + Future>> informationList(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/information/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => PageInfo.fromJson( + json, + (json) => Activity.fromJson(json), + ), + ); + return value; + } + + @override + Future> informationInfo(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/information/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData
.fromJson( + _result.data, + (json) => Article.fromJson(json), + ); + return value; + } + + @override + Future> activityInfo(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/information/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => Activity.fromJson(json), + ); + return value; + } + + @override + Future> creditOrderReceive(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/creditOrder/receive/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future> queryHome() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/home/home', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => BrandData.fromJson(json), + ); + return value; + } + + @override + Future> queryStoreInfo(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/store/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future>> queryArticle(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/information/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => PageInfo
.fromJson( + json, + (json) => Article.fromJson(json), + ), + ); + return value; + } + + @override + Future>> queryBanner(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/banner/page', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => PageInfo.fromJson( + json, + (json) => BannerData.fromJson(json), + ), + ); + return value; + } + + @override + Future> queryHomeBrand() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/home/brand', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future> minLogin(storeId) async { + ArgumentError.checkNotNull(storeId, 'storeId'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/auth/mini/login/$storeId', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future>> queryBillInfo(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/member/listBill', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => PageInfo.fromJson( + json, + (json) => UserBill.fromJson(json), + ), + ); + return value; + } + + @override + Future>> rankList() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/member/rankList', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => (json as List) + .map((i) => Rank.fromJson(i as Map)) + .toList()); + return value; + } + + @override + Future>> orderList(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/order/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => PageInfo.fromJson( + json, + (json) => OrderInfo.fromJson(json), + ), + ); + return value; + } + + @override + Future> orderDetail(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/order/orderDetail?id=$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => OrderInfo.fromJson(json), + ); + return value; + } + + @override + Future> continuePay(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/order/continuePay', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future> receiveToCard(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/creditOrder/receive/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future>> vipList(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/member/vipList', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => (json as List) + .map((i) => VipCard.fromJson(i as Map)) + .toList()); + return value; + } + + @override + Future> vipDetail(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/member/vipDetail', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => VipCard.fromJson(json), + ); + return value; + } + + @override + Future>> msgList(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/app-msg/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => PageInfo.fromJson( + json, + (json) => Message.fromJson(json), + ), + ); + return value; + } + + @override + Future> queryMsg(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>('/app-msg/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future> informationLikes(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/information/likes/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future> memberComment(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/memberComment', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future>> memberCommentList(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + '/memberComment/list', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData>.fromJson( + _result.data, + (json) => PageInfo.fromJson( + json, + (json) => MemberCommentList.fromJson(json), + ), + ); + return value; + } + + @override + Future> commentLike(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/memberComment/likes/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future> delComment(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/memberComment/delete/$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } + + @override + Future> shippingTrace(shipperCode, logisticCode) async { + ArgumentError.checkNotNull(shipperCode, 'shipperCode'); + ArgumentError.checkNotNull(logisticCode, 'logisticCode'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/order/getShippingTrace/$shipperCode/$logisticCode', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => Logistics.fromJson(json), + ); + return value; + } + + @override + Future> report(map) async { + ArgumentError.checkNotNull(map, 'map'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(map ?? {}); + final _result = await _dio.request>('/other/report', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as bool, + ); + return value; + } + + @override + Future> orderCancel(id) async { + ArgumentError.checkNotNull(id, 'id'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/order/orderCancel?id=$id', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as bool, + ); + return value; + } + + @override + Future> settlement(map) async { + ArgumentError.checkNotNull(map, 'map'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(map ?? {}); + final _result = await _dio.request>( + '/order/settlement', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as String, + ); + return value; + } +}