Commit c2d37c2630c3761b3dbff0d0227dbc190b5c0cd3

Authored by wdn127929
2 parents 3de2f2bb 1007e741

合并v2.1 发短信

import 'package:json_annotation/json_annotation.dart';
part 'wx_send_sms_model.g.dart';
@JsonSerializable()
class WxSendSmsModel extends Object {
@JsonKey(name: 'ret')
int ret;
@JsonKey(name: 'data')
WxSendSmsSunModel data;
@JsonKey(name: 'msg')
String msg;
WxSendSmsModel(
this.ret,
this.data,
this.msg,
);
factory WxSendSmsModel.fromJson(Map<String, dynamic> srcJson) =>
_$WxSendSmsModelFromJson(srcJson);
Map<String, dynamic> toJson() => _$WxSendSmsModelToJson(this);
}
@JsonSerializable()
class WxSendSmsSunModel extends Object {
@JsonKey(name: 'errcode')
int errcode;
@JsonKey(name: 'send_status_list')
List<SendStatusList> sendStatusList;
@JsonKey(name: 'query_id')
String queryId;
WxSendSmsSunModel(
this.errcode,
this.sendStatusList,
this.queryId,
);
factory WxSendSmsSunModel.fromJson(Map<String, dynamic> srcJson) =>
_$WxSendSmsSunModelFromJson(srcJson);
Map<String, dynamic> toJson() => _$WxSendSmsSunModelToJson(this);
}
@JsonSerializable()
class SendStatusList extends Object {
@JsonKey(name: 'serial_no')
String serialNo;
@JsonKey(name: 'phone_number')
String phoneNumber;
@JsonKey(name: 'code')
String code;
@JsonKey(name: 'message')
String message;
@JsonKey(name: 'iso_code')
String isoCode;
SendStatusList(
this.serialNo,
this.phoneNumber,
this.code,
this.message,
this.isoCode,
);
factory SendStatusList.fromJson(Map<String, dynamic> srcJson) =>
_$SendStatusListFromJson(srcJson);
Map<String, dynamic> toJson() => _$SendStatusListToJson(this);
}
... ...
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'wx_send_sms_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
WxSendSmsModel _$WxSendSmsModelFromJson(Map<String, dynamic> json) {
return WxSendSmsModel(
json['ret'] as int,
json['data'] == null
? null
: WxSendSmsSunModel.fromJson(json['data'] as Map<String, dynamic>),
json['msg'] as String);
}
Map<String, dynamic> _$WxSendSmsModelToJson(WxSendSmsModel instance) =>
<String, dynamic>{
'ret': instance.ret,
'data': instance.data,
'msg': instance.msg
};
WxSendSmsSunModel _$WxSendSmsSunModelFromJson(Map<String, dynamic> json) {
return WxSendSmsSunModel(
json['errcode'] as int,
(json['send_status_list'] as List)
?.map((e) => e == null
? null
: SendStatusList.fromJson(e as Map<String, dynamic>))
?.toList(),
json['query_id'] as String);
}
Map<String, dynamic> _$WxSendSmsSunModelToJson(WxSendSmsSunModel instance) =>
<String, dynamic>{
'errcode': instance.errcode,
'send_status_list': instance.sendStatusList,
'query_id': instance.queryId
};
SendStatusList _$SendStatusListFromJson(Map<String, dynamic> json) {
return SendStatusList(
json['serial_no'] as String,
json['phone_number'] as String,
json['code'] as String,
json['message'] as String,
json['iso_code'] as String);
}
Map<String, dynamic> _$SendStatusListToJson(SendStatusList instance) =>
<String, dynamic>{
'serial_no': instance.serialNo,
'phone_number': instance.phoneNumber,
'code': instance.code,
'message': instance.message,
'iso_code': instance.isoCode
};
... ...
... ... @@ -91,4 +91,7 @@ class HttpUrl {
"?service=App.SendSMS.SendVcCode"; //绑定手机号码时,给用户发送短信验证码接口
static const String check_seller_acc =
"?service=App.User.CheckSellerAcc"; //APP微信登录后检测是否存在商家
static const String app_sendsms_wxSendSms =
"?service=App.SendSMS.WxSendSms"; //预订安排发短信
}
... ...
... ... @@ -61,6 +61,7 @@ class InvicationPageState extends State<InvicationPage> {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
couponProvider.sendSMS = false;
_getActivityByRid();
_getCustomerActivityBaseinfo();
_getSellerPhotoById();
... ... @@ -599,7 +600,7 @@ class InvicationPageState extends State<InvicationPage> {
Overflow.visible,
children: [
Container(
margin: EdgeInsets.only(
margin: EdgeInsets.only(
bottom:
ScreenUtil()
.setWidth(
... ... @@ -625,8 +626,6 @@ class InvicationPageState extends State<InvicationPage> {
.setWidth(
24 *
2)),
// height:
// ScreenUtil().setWidth(84 * 2),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(
... ... @@ -748,12 +747,30 @@ class InvicationPageState extends State<InvicationPage> {
child: Row(
children: <Widget>[
GestureDetector(
onTap: () {
onTap: () async {
if (widget.phone.isEmpty) {
Utils.showToast("没有预订人电话信息");
return;
}
NavigatorUtil.goSmsPage(context, widget.rid);
if (!couponProvider.sendSMS) {
Map<String, String> params = {
"phone": widget.phone,
"Strtext": user.sellername +
_baseIndoProvider.baseInfoSunModel.name
};
bool success = await couponProvider
.sendSMSWxSendSms(context, params);
print(success);
if (success) {
Utils.showToast('短信已经发送成功!');
} else {
Utils.showToast('发送次数太频繁!');
}
} else {
Utils.showToast('短信已经发送成功!');
}
// NavigatorUtil.goSmsPage(context, widget.rid);
},
child: Container(
width: ScreenUtil().setWidth(135 * 2),
... ...
... ... @@ -3,6 +3,7 @@ import 'package:one_key/constant/constant.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/models/coupon_model.dart';
import 'package:one_key/models/wx_send_sms_model.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/net/base_resp.dart';
... ... @@ -16,6 +17,7 @@ class CouponProvider with ChangeNotifier {
PageState pageStateHistory = PageState.Loading;
PageState pageStateSelect = PageState.Loading;
bool hasModify = false;
bool sendSMS = false;
bool checkValue = true; //优惠券页面“全选”按钮状态 ----- 数据状态全部选中为true
// List<Map<String, dynamic>> listData = []; //优惠券页面数据
... ... @@ -391,4 +393,49 @@ class CouponProvider with ChangeNotifier {
return false;
}
}
///预定安排微信发短信
Future<bool> sendSMSWxSendSms(
BuildContext context, Map<String, String> params,
{isShowLoading = true}) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.app_sendsms_wxSendSms,
data: params, showLoading: isShowLoading)
.catchError((error) {
print(error.toString());
if (error is MyError) {}
});
if (baseResp.code == Constant.status_success) {
if (baseResp.data == null) {
return false;
} else {
if (WxSendSmsModel.fromJson(baseResp.responseData)
.data
.sendStatusList
.length >
0) {
String code = WxSendSmsModel.fromJson(baseResp.responseData)
.data
.sendStatusList[0]
.code;
if (code == 'Ok') {
sendSMS = true;
return true;
} else if (code == 'LimitExceeded.PhoneNumberSameContentDailyLimit') {
return false;
} else {
return false;
}
} else {
return false;
}
}
} else {
if (baseResp != null) {
Utils.showToast(baseResp.msg ?? "");
}
return false;
}
}
}
... ...