Commit bf3ca7bc authored by 朱璇's avatar 朱璇

Merge branch 'zx/faceTest' into 'master'

Zx/face test

See merge request !18
parents 6324cf4c 667c4ea5
......@@ -338,6 +338,7 @@
"${BUILT_PRODUCTS_DIR}/GMRouter/GMRouter.framework",
"${BUILT_PRODUCTS_DIR}/GMUtil/GMUtil.framework",
"${BUILT_PRODUCTS_DIR}/GPUImage/GPUImage.framework",
"${BUILT_PRODUCTS_DIR}/HappyDNS/HappyDNS.framework",
"${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework",
"${BUILT_PRODUCTS_DIR}/MJExtension/MJExtension.framework",
"${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework",
......@@ -377,6 +378,7 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GMRouter.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GMUtil.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GPUImage.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HappyDNS.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJExtension.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework",
......@@ -387,7 +389,6 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/NMC.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/NMCBasicModuleFramework.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PLMediaStreamingKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HappyDNS.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PLPlayerKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Qiniu.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework",
......
......@@ -153,6 +153,7 @@ PODS:
- Weibo_SDK (= 3.2.7)
- GMUtil (3.1.0)
- GPUImage (0.1.7)
- HappyDNS (0.3.17)
- lottie-ios (2.5.2)
- MagicalRecord (2.3.2):
- MagicalRecord/Core (= 2.3.2)
......@@ -168,7 +169,8 @@ PODS:
- PLPlayerKit (3.4.3):
- PLPlayerKit/iphoneos (= 3.4.3)
- PLPlayerKit/iphoneos (3.4.3)
- Qiniu (7.2.6)
- Qiniu (7.4.2):
- HappyDNS (~> 0.3.17)
- SDWebImage (5.8.4):
- SDWebImage/Core (= 5.8.4)
- SDWebImage/Core (5.8.4)
......@@ -215,6 +217,7 @@ SPEC REPOS:
- DouyinOpenSDK
- EVReflection
- GPUImage
- HappyDNS
- lottie-ios
- MagicalRecord
- Masonry
......@@ -263,6 +266,7 @@ SPEC CHECKSUMS:
GMShareSDK: 5a0fc06881021f0055841675bf748c01143acc2d
GMUtil: 194a8831e4311762c4b1ac1278281b456157f4ec
GPUImage: 733a5f0fab92df9de1c37ba9df520a833ccb406d
HappyDNS: 848ef73e24f2b0e2752064223ce2dc0dd88900ea
lottie-ios: 3fef45d3fabe63e3c7c2eb603dd64ddfffc73062
MagicalRecord: 53bed74b4323b930992a725be713e53b37d19755
Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
......@@ -272,7 +276,7 @@ SPEC CHECKSUMS:
NIMSDK: a43eb9b8bf83ddb0338c51ae2d756b683edc0cb8
PLMediaStreamingKit: 3f4fafe3535de54a02c219f40331afa2b47592e0
PLPlayerKit: a44734dc78c1f8f9fb22c537fa1916612fa46b06
Qiniu: 9d1f20dcc348919972b4ee1b1272f9b9d4a7e69e
Qiniu: 0e2887592ffb0f23f86b920470d2301933d51f11
SDWebImage: cf6922231e95550934da2ada0f20f2becf2ceba9
SnapKit: a42d492c16e80209130a3379f73596c3454b7694
TMCache: 95ebcc9b3c7e90fb5fd8fc3036cba3aa781c9bed
......
......@@ -70,7 +70,7 @@
if (response.isSuccess) {
NSDictionary *dic = (NSDictionary *)response.data;
BOOL hasRecord = [dic.allKeys containsObject:@"has_record"] ? [dic[@"has_record"] boolValue] : NO;
if (!cardView.isDispatch && [dic.allKeys containsObject:@"counsellor_type"] && dic[@"counsellor_type"] != NULL) {
if (!cardView.isDispatch && [dic.allKeys containsObject:@"counsellor_type"] && dic[@"counsellor_type"] != NULL && ![dic[@"counsellor_type"] isEqual:[NSNull null]]) {
cardView.type = [dic[@"counsellor_type"] integerValue];
}
[cardView updateConstraintsWithHasRecord:hasRecord];
......
......@@ -11,7 +11,9 @@
#import "GMStarWithContentObject.h"
#import "GMToFaceNetworking.h"
#import <GMBase/GMBaseTool.h>
#import "GMBookReachStoreConsultView.h"
#import "GMBookConsultViewModel.h"
#import "GMBookConsultInfoModel.h"
@interface GMSureOrderPopView ()
@property (nonatomic, strong) GMLabel *topLabel;
......@@ -249,6 +251,19 @@
weakSelf.completeCallBack(2, evaluateStr, starNum);
}
}
// 弹授权弹窗(视频面诊评价弹窗关闭后/视频面诊结束之后(通话时长小于30s,不弹弹窗))
[GMBookConsultViewModel bookConsultInfoWithWithRecordId:self.infoModel.consultationRecordId successBlock:^(id responseObject) {
GMResponseOC *response = (GMResponseOC *)responseObject;
NSDictionary *data = response.data;
GMBookConsultInfoModel *info = [[GMBookConsultInfoModel alloc] initWithDictionary:data error:NULL];
info.recordId = self.infoModel.consultationRecordId;
if (data.allKeys.count > 0) {
[GMBookReachStoreConsultView showBookConsultPopViewWithObject:info];
}
} failBlock:^(NSString *message) {
}];
};
view.showComplaint = NO;
view.recordId = self.infoModel.consultationRecordId;
......
......@@ -13,6 +13,7 @@
#import "GMEndConsultView.h"
#import "RequestHeader.h"
#import "GMToFaceNetworking.h"
@import GMBaseWeb;
@import GMHud;
@interface GMTofaceOrderDetailViewController () <GMJSBridgeProtocol>
......
//
// GMBookConsultInfoModel.h
// GMAILab
//
// Created by Jessica on 2020/7/21.
//
#import <GMBase/GMObject.h>
NS_ASSUME_NONNULL_BEGIN
@interface GMBookConsultInfoModel : GMObject
@property (nonatomic, assign) NSInteger userId;
@property (nonatomic, copy) NSString *prompt;
@property (nonatomic, copy) NSString *imgUrl;
@property (nonatomic, copy) NSString *subTitle;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *telephone;
@property (nonatomic, copy) NSString *recordId;
@property (nonatomic, assign) BOOL hasPhone;
@property (nonatomic, assign) NSInteger leadPhoneRequestId;
@end
NS_ASSUME_NONNULL_END
//
// GMBookConsultInfoModel.m
// GMAILab
//
// Created by Jessica on 2020/7/21.
//
#import "GMBookConsultInfoModel.h"
@implementation GMBookConsultInfoModel
@end
//
// GMBookReachStoreConsultView.h
// AFNetworking
//
// Created by Jessica on 2020/7/20.
//
#import <GMKit/GMPopupBgView.h>
#import "GMBookConsultInfoModel.h"
@import GMBase;
@import GMHud;
@import GMRouter;
@interface GMBookReachStoreConsultView : GMPopupBgView
+ (void)showBookConsultPopViewWithObject:(GMBookConsultInfoModel *)model;
@end
//
// GMBookReachStoreConsultView.m
// AFNetworking
//
// Created by Jessica on 2020/7/20.
//
#import "GMBookReachStoreConsultView.h"
#import "GMBookConsultViewModel.h"
#import "GMLibraryHeader.h"
@interface GMBookReachStoreConsultView()
@property (nonatomic, strong) UIButton *authBtn;
@property (nonatomic, strong) UILabel *phoneLabel;
@property (nonatomic, strong) UIButton *cancelBtn;
@property (nonatomic, strong) UIImageView *headerImageView;
@property (nonatomic, strong) UIImageView *icon;
@property (nonatomic, strong) UILabel *iconLabel;
@property (nonatomic, strong) UILabel *tipLabel;
@property (nonatomic, strong) UILabel *titleLabel;
@property (nonatomic, copy) NSString *recordId;
@property (nonatomic, assign) NSInteger leadPhoneRequestId;
@property (nonatomic, assign) BOOL isHadPhone;
@end
@implementation GMBookReachStoreConsultView
-(void)setup{
[super setup];
self.animationType = GMPopupAnimationTypeFlipFromBottom;
self.container.backgroundColor = UIColor.whiteColor;
[self.container mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(0);
make.height.mas_equalTo(267 + UIView.safeAreaInsetsBottom);
make.bottom.mas_equalTo(0);
}];
self.container.frame = CGRectMake(0, MAINSCREEN_HEIGHT - 267 - UIView.safeAreaInsetsBottom, MAINSCREEN_WIDTH, 267 + UIView.safeAreaInsetsBottom);
_headerImageView = [[UIImageView alloc] init];
[self.container addSubview:_headerImageView];
[_headerImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.width.mas_equalTo(85);
make.centerX.mas_equalTo(self.container.mas_centerX);
make.centerY.mas_equalTo(self.container.mas_top);
}];
_titleLabel = [[UILabel alloc] init];
_titleLabel.textColor = RGBCOLOR_HEX(0x464646);
_titleLabel.textAlignment = NSTextAlignmentCenter;
_titleLabel.numberOfLines = 0;
_titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
_titleLabel.font = [UIFont gmBoldFont:18];
[self.container addSubview:_titleLabel];
[_titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(_headerImageView.mas_bottom).offset(1);
make.centerX.mas_equalTo(_headerImageView.mas_centerX);
make.left.mas_equalTo(35);
make.right.mas_equalTo(-35);
}];
_iconLabel = [[UILabel alloc] init];
_iconLabel.textColor = UIColor.grayColor;
_iconLabel.textAlignment = NSTextAlignmentCenter;
_iconLabel.font = [UIFont gmFont:14];
[self addSubview:_iconLabel];
[_iconLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(_titleLabel.mas_bottom).offset(14);
make.centerX.mas_equalTo(_titleLabel.mas_centerX).offset(10.5);
make.height.mas_equalTo(19);
}];
_icon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"video_book_consult_small_icon"]];
[self.container addSubview:_icon];
[_icon mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.width.mas_equalTo(16);
make.right.mas_equalTo(_iconLabel.mas_left).offset(-5);
make.centerY.mas_equalTo(_iconLabel.mas_centerY);
}];
_cancelBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[_cancelBtn setBackgroundImage:[UIImage imageNamed:@"clue_cancl"] forState:UIControlStateNormal];
[_cancelBtn addTarget:self action:@selector(cancelClicked) forControlEvents:UIControlEventTouchUpInside];
[self.container addSubview:_cancelBtn];
_cancelBtn.layer.borderColor = UIColor.whiteColor.CGColor;
[_cancelBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-20);
make.top.mas_equalTo(20);
make.height.width.mas_equalTo(15);
}];
_phoneLabel = [[UILabel alloc] init];
_phoneLabel.backgroundColor = UIColor.background;
_phoneLabel.textColor = UIColor.auxiliaryTextDark;
_phoneLabel.textAlignment = NSTextAlignmentCenter;
_phoneLabel.layer.cornerRadius = 7;
_phoneLabel.layer.masksToBounds = YES;
_phoneLabel.font = [UIFont gmFont:16];
[self.container addSubview:_phoneLabel];
[_phoneLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(_iconLabel.mas_bottom).offset(25);
make.centerX.mas_equalTo(_headerImageView.mas_centerX);
make.height.mas_equalTo(37);
make.left.mas_equalTo(self.container.mas_left).offset(35);
make.right.mas_equalTo(self.container.mas_right).offset(-35);
}];
_authBtn = [UIButton buttonWithType:UIButtonTypeCustom];
_authBtn.backgroundColor = RGBCOLOR_HEX(0x3AC3BD);
_authBtn.layer.cornerRadius = 7;
_authBtn.layer.masksToBounds = YES;
_authBtn.titleLabel.font = [UIFont gmBoldFont:16];
[_authBtn setTitleColor:UIColor.whiteColor forState:UIControlStateNormal];
[_authBtn setTitle:@"一键授权(加密)" forState:UIControlStateNormal];
_authBtn.titleLabel.layer.shadowColor = [UIColor colorWithHexString:@"007872" alpha:1].CGColor; //阴影的颜色
_authBtn.titleLabel.layer.shadowOpacity = 1.0f; //阴影的不透明度
_authBtn.titleLabel.layer.shadowOffset = CGSizeMake(0.0f, 1.5f); //阴影的偏移量,这个很重要
_authBtn.titleLabel.layer.shadowRadius = 0.5f; //阴影的扩散半径,
[_authBtn addTarget:self action:@selector(authClicked) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:_authBtn];
_authBtn.layer.borderColor = UIColor.whiteColor.CGColor;
[_authBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(_phoneLabel.mas_bottom).offset(12);
make.centerX.mas_equalTo(0);
make.height.mas_equalTo(40);
make.left.mas_equalTo(self.container.mas_left).offset(35);
make.right.mas_equalTo(self.container.mas_right).offset(-35);
}];
_tipLabel = [[UILabel alloc] init];
_tipLabel.text = @"更美为您提供号码保护,对方看不到您的真实手机号";
_tipLabel.textColor = UIColor.grayColor;
_tipLabel.textAlignment = NSTextAlignmentCenter;
_tipLabel.font = [UIFont gmFont:11];
[self.container addSubview:_tipLabel];
[_tipLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(_authBtn.mas_bottom).offset(14);
make.bottom.mas_equalTo(self.container.mas_bottom).offset(-25 - UIView.safeAreaInsetsBottom);
make.centerX.mas_equalTo(_headerImageView.mas_centerX);
make.height.mas_equalTo(15);
make.left.mas_equalTo(self.container.mas_left).offset(33);
make.right.mas_equalTo(self.container.mas_right).offset(-33);
}];
[self containerRectCorner:self.container];
}
- (void)containerRectCorner:(UIView *)view {
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = view.bounds;
maskLayer.path = maskPath.CGPath;
view.layer.mask = maskLayer;
}
- (void)authClicked {
[GMBookReachStoreConsultView on_click_buttonWithButtonName:@"appointment"];
if (self.isHadPhone) {
__weak typeof(self) weakSelf = self;
[GMBookConsultViewModel bookConsultWithRecordId:SafeString(self.recordId) requestId:_leadPhoneRequestId successBlock:^(id responseObject) {
GMResponseOC *response = (GMResponseOC *)responseObject;
NSDictionary *data = response.data;
// 跳转发私信
[[GMRouter sharedInstance] pushScheme:SafeString(data[@"message_url"])];
[weakSelf cancelClicked];
} failBlock:^(NSString *message) {
[[GMBaseTool getCurrentViewController] toast:message];
[weakSelf cancelClicked];
}];
} else {
[[GMBaseTool getCurrentViewController] toast:@"请先在我的页面设置功能中绑定手机号"];
[self cancelClicked];
}
}
- (void)cancelClicked {
[GMBookReachStoreConsultView on_click_buttonWithButtonName:@"close"];
[self removeFromSuperview];
}
- (void)hide {
// 点击其他部分不消失
}
+ (void)showBookConsultPopViewWithObject:(GMBookConsultInfoModel *)model {
if (model) {
GMBookReachStoreConsultView *popView = [[GMBookReachStoreConsultView alloc] initWithFrame:CGRectMake(0, 0, MAINSCREEN_WIDTH, MAINSCREEN_HEIGHT)];
[popView popup_view]; // 埋点
popView.titleLabel.text = model.title;
[popView.headerImageView sd_setImageWithURL:[NSURL URLWithString:model.imgUrl]];
popView.iconLabel.text = model.subTitle;
popView.phoneLabel.text = model.telephone;
popView.tipLabel.text = model.prompt;
popView.recordId = model.recordId;
popView.isHadPhone = model.hasPhone;
popView.leadPhoneRequestId = model.leadPhoneRequestId;
[[GMBaseTool getCurrentViewController].view addSubview:popView];
}
}
- (void)popup_view {
NSDictionary *dict = @{@"page_name":SafeString([GMBaseTool getCurrentViewController].pageName),
@"popup_name":@"free_to_clinic",
@"referrer_link":[GMBaseTool getCurrentViewController].referrerLink ? : @[],
@"business_id":SafeString([GMBaseTool getCurrentViewController].businessId),
@"referrer":SafeString([GMBaseTool getCurrentViewController].referer),
@"referrer_id":SafeString([GMBaseTool getCurrentViewController].referrerId)
};
[Phobos track:@"popup_view" attributes:dict];
}
+ (void)on_click_buttonWithButtonName:(NSString *)buttonName {
NSDictionary *dict = @{@"page_name":SafeString([GMBaseTool getCurrentViewController].pageName),
@"popup_name":@"free_to_clinic",
@"referrer_link":[GMBaseTool getCurrentViewController].referrerLink ? : @[],
@"business_id":SafeString([GMBaseTool getCurrentViewController].businessId),
@"referrer":SafeString([GMBaseTool getCurrentViewController].referer),
@"referrer_id":SafeString([GMBaseTool getCurrentViewController].referrerId),
@"button_name":SafeString(buttonName)
};
[Phobos track:@"on_click_button" attributes:dict];
}
@end
......@@ -11,7 +11,7 @@
#import "RequestHeader.h"
#import "GMAIUploadImagesManager.h"
//#import "GMUploadImagesManager.h"
#import <GMbase/GMBaseTool.h>
#import <GMBase/GMBaseTool.h>
@import GMBaseWeb;
@import GMHud;
......
//
// GMBookConsultViewModel.h
// AFNetworking
//
// Created by Jessica on 2020/7/20.
//
//#import <GMBase/GMBase.h>
//#import "GMNetworking/GMNetworking-Swift.h"
//#import "RequestHeader.h"
@import GMNetworking;
@import GMBase;
NS_ASSUME_NONNULL_BEGIN
@interface GMBookConsultViewModel : WMFetchDataViewModel
// 获取弹窗
+ (void)bookConsultInfoWithWithRecordId:(NSString *)recordId successBlock:(HttpSuccessBlock)successBlock failBlock:(HttpFailedBlock)failBlock;
+ (void)bookConsultWithRecordId:(NSString *)recordId requestId:(NSInteger)requestId successBlock:(HttpSuccessBlock)successBlock failBlock:(HttpFailedBlock)failBlock;
@end
NS_ASSUME_NONNULL_END
//
// GMBookConsultViewModel.m
// AFNetworking
//
// Created by Jessica on 2020/7/20.
//
#import "GMBookConsultViewModel.h"
@implementation GMBookConsultViewModel
+ (void)bookConsultInfoWithWithRecordId:(NSString *)recordId successBlock:(HttpSuccessBlock)successBlock failBlock:(HttpFailedBlock)failBlock {
NSMutableDictionary *params = [NSMutableDictionary dictionary];
[params setObject:SafeString(recordId) forKey:@"record_id"];
[GMNetworking requestOCWithApi:@"/api/consultation_counsel/conuslt_user_appointment" method:GMHTTPMethodGet parameters:params completion:^(GMResponseOC *responseObject) {
if (responseObject.isSuccess) {
successBlock(responseObject);
} else {
failBlock(responseObject.message);
}
}];
}
+ (void)bookConsultWithRecordId:(NSString *)recordId requestId:(NSInteger)requestId successBlock:(HttpSuccessBlock)successBlock failBlock:(HttpFailedBlock)failBlock {
NSMutableDictionary *params = [NSMutableDictionary dictionary];
[params setObject:SafeString(recordId) forKey:@"record_id"];
[params setObject:@(requestId) forKey:@"request_id"];
[params setObject:SafeString([PhobosUtil currentTime]) forKey:@"appointment_time"];
[GMNetworking requestOCWithApi:@"/api/sales_lead/consult_appointment" method:GMHTTPMethodPost parameters:params completion:^(GMResponseOC *responseObject) {
if (responseObject.isSuccess) {
successBlock(responseObject);
} else {
failBlock(responseObject.message);
}
}];
}
@end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment