Commit 524556de03e77672ea8fada4bc7ff3501904b3b0

Authored by “gaiyaguang”
1 parent 591b9691

短信部分

397933a8f93ced880f583fe557299f5c
\ No newline at end of file
7babc7873f8d177769b987ba4c6c2911
\ No newline at end of file
... ...
... ... @@ -146,4 +146,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: a75497545d4391e2d394c3668e20cfb1c2bbd4aa
COCOAPODS: 1.9.1
COCOAPODS: 1.9.3
... ...
import 'package:json_annotation/json_annotation.dart';
part 'sms_info.g.dart';
@JsonSerializable()
class SmsInfo extends Object {
@JsonKey(name: 'ret')
int ret;
@JsonKey(name: 'data')
SmsInfoData data;
@JsonKey(name: 'msg')
String msg;
SmsInfo(
this.ret,
this.data,
this.msg,
);
factory SmsInfo.fromJson(Map<String, dynamic> srcJson) =>
_$sms_infoFromJson(srcJson);
Map<String, dynamic> toJson() => _$sms_infoToJson(this);
}
@JsonSerializable()
class SmsInfoData extends Object {
@JsonKey(name: 'last_num')
String lastNum;
@JsonKey(name: 'meals')
List<Meals> meals;
SmsInfoData(
this.lastNum,
this.meals,
);
factory SmsInfoData.fromJson(Map<String, dynamic> srcJson) =>
_$DataFromJson(srcJson);
Map<String, dynamic> toJson() => _$DataToJson(this);
}
@JsonSerializable()
class Meals extends Object {
@JsonKey(name: 'id')
String id;
@JsonKey(name: 'package_name')
String packageName;
@JsonKey(name: 'total')
String total;
@JsonKey(name: 'price_ave')
String priceAve;
@JsonKey(name: 'price_old')
String priceOld;
@JsonKey(name: 'price')
String price;
@JsonKey(name: 'discount')
String discount;
Meals(
this.id,
this.packageName,
this.total,
this.priceAve,
this.priceOld,
this.price,
this.discount,
);
factory Meals.fromJson(Map<String, dynamic> srcJson) =>
_$MealsFromJson(srcJson);
Map<String, dynamic> toJson() => _$MealsToJson(this);
}
... ...
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'sms_info.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
SmsInfo _$sms_infoFromJson(Map<String, dynamic> json) {
return SmsInfo(
json['ret'] as int,
json['data'] == null
? null
: SmsInfoData.fromJson(json['data'] as Map<String, dynamic>),
json['msg'] as String);
}
Map<String, dynamic> _$sms_infoToJson(SmsInfo instance) => <String, dynamic>{
'ret': instance.ret,
'data': instance.data,
'msg': instance.msg
};
SmsInfoData _$DataFromJson(Map<String, dynamic> json) {
return SmsInfoData(
json['last_num'] as String,
(json['meals'] as List)
?.map((e) =>
e == null ? null : Meals.fromJson(e as Map<String, dynamic>))
?.toList());
}
Map<String, dynamic> _$DataToJson(SmsInfoData instance) =>
<String, dynamic>{'last_num': instance.lastNum, 'meals': instance.meals};
Meals _$MealsFromJson(Map<String, dynamic> json) {
return Meals(
json['id'] as String,
json['package_name'] as String,
json['total'] as String,
json['price_ave'] as String,
json['price_old'] as String,
json['price'] as String,
json['discount'] as String);
}
Map<String, dynamic> _$MealsToJson(Meals instance) => <String, dynamic>{
'id': instance.id,
'package_name': instance.packageName,
'total': instance.total,
'price_ave': instance.priceAve,
'price_old': instance.priceOld,
'price': instance.price,
'discount': instance.discount
};
... ...
... ... @@ -37,4 +37,5 @@ class HttpUrl {
"?service=Android.Customer.SetReserveInfo"; //更改在线预订
static const String set_switch_status =
"?service=App.Reserve.SetSwitchStatus"; //启用/停用桌位
static const String sms_info = "?service=App.SendSMS.SmsInfo"; //短信余量查询及套餐查询接口
}
... ...
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:fluwx/fluwx.dart';
import 'package:one_key/models/sms_info.dart';
import 'package:one_key/provider/my_model.dart';
import 'package:one_key/provider/update_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
... ... @@ -25,6 +27,7 @@ class MyPage extends StatefulWidget {
class MyPageState extends State<MyPage> {
String cur_version = "";
bool newVersion = false;
String smsInfo = "";
@override
void initState() {
... ... @@ -35,6 +38,18 @@ class MyPageState extends State<MyPage> {
cur_version = "v" + version;
});
});
///获取短信余量
_getSmsInfo();
}
///获取短信余量
_getSmsInfo() async {
MyModel myModel = Provider.of<MyModel>(context, listen: false);
SmsInfoData smsInfoData = await myModel.getSmsInfo(context);
setState(() {
smsInfo = smsInfoData?.lastNum;
});
}
//检查版本更新
... ... @@ -43,7 +58,6 @@ class MyPageState extends State<MyPage> {
updateModel.checkUpdate(context);
}
@override
Widget build(BuildContext context) {
return Stack(
... ... @@ -54,6 +68,18 @@ class MyPageState extends State<MyPage> {
children: <Widget>[
VEmptyView(40),
MyItem(
title: "短信管理",
content: smsInfo.isNotEmpty ? '剩余${smsInfo}条' : '',
callback: () {
Utils.goMiniProgramZm(context);
},
),
MyDivider(
double.infinity,
ScreenUtil().setHeight(1),
color: MyColours.color_f3f3f3,
),
MyItem(
title: "包间类型置满管理",
content: "",
callback: () {
... ...
import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/models/sms_info.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/provider/SmsModel.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';
class MyModel extends ChangeNotifier{
}
\ No newline at end of file
class MyModel extends ChangeNotifier {
/// 短信余量查询及套餐查询接口
Future<SmsInfoData> getSmsInfo(BuildContext context) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
Map<String, String> params = {"seller_id": userModel.user.sellerid};
try {
BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
.request<Map<String, dynamic>>(context, Method.get, HttpUrl.sms_info,
data: params, showLoading: false)
.catchError((error) {
print(error.toString());
});
SmsInfoData data;
if (baseResp?.code == Constant.status_success) {
SmsInfo smsInfo = SmsInfo.fromJson(baseResp.responseData);
if (smsInfo.ret == 200) {
data = smsInfo.data;
} else {
Utils.showToast(smsInfo.msg);
}
} else {
Utils.showToast('查询失败');
}
return data;
} catch (error) {
if (error is MyError) {
switch (error.type) {
case 1:
print('错误');
break;
case 2:
print('超时');
break;
default:
print('错误');
break;
}
}
}
}
}
... ...
... ... @@ -81,12 +81,14 @@ class Utils {
//跳转小程序包间类型置满管理
static goMiniProgramZm(BuildContext context) {
UserModel model=Provider.of<UserModel>(context);
UserModel model = Provider.of<UserModel>(context, listen: false);
launchWeChatMiniProgram(
username: "gh_487873d353b3",
path: "pack-book/pages/book/b_index?seller_id=${model.user.sellerid}&seller_openid=oGefL4qKBWIh5xwyg3LVfkMbDumA&manager_id=''&goPath=roomtype/roomtype",
path:
"pack-book/pages/book/b_index?seller_id=${model.user.sellerid}&seller_openid=oGefL4qKBWIh5xwyg3LVfkMbDumA&manager_id=''&goPath=roomtype/roomtype",
miniProgramType: WXMiniProgramType.RELEASE);
}
//跳转拨打电话页面
static goHelp(BuildContext context) async {
NavigatorUtil.goWebviewPage(context);
... ...