123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682 |
- //
- // RQPTObjectMolule.m
- // jiaPei
- //
- // Created by 张嵘 on 2022/4/8.
- // Copyright © 2022 JCZ. All rights reserved.
- //
- #import "RQPTObjectMolule.h"
- #import "MapManager.h"
- typedef NS_ENUM(NSInteger, RQQRCodeType) {
- /// 无
- RQQRCodeType_NO = 0,
- /// 莆田门禁
- RQQRCodeType_PTMJ = 1,
- /// 莆田实操
- RQQRCodeType_PTSC = 2,
- /// 浙江模拟
- RQQRCodeType_ZJJP = 3,
- };
- @interface RQPTObjectMolule ()
- @property (nonatomic, readwrite, assign) RQQRCodeType rqQRCodeType;
- @property (nonatomic, readwrite, assign) BOOL isShowChooseSubject;
- @property (nonatomic, readwrite, copy) NSString *PTSC6_str;
- @end
- @implementation RQPTObjectMolule
- static id rq_ptObjectModule = nil;
- #pragma mark - init
- + (instancetype)sharedInstance {
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- rq_ptObjectModule = [[self alloc] init];
- });
- return rq_ptObjectModule;
- }
- - (instancetype)init {
- if (self = [super init]) {
-
- }
- return self;
- }
- #pragma mark - PublicMethods
- // 扫码验证
- - (void)uploadScanCodeVerifyWithQRCodeResultStr:(NSString *)resultStr resultBlock:(void (^)(BOOL isSuccess))resultBlock {
- _rqQRCodeType = RQQRCodeType_NO;
- @weakify(self)
- if (![Util connectedToNetWork]) {
- showMsgUnconnect();
- resultBlock(NO);
- return;
- }
-
- //新需求 - 2023-6-19
- // 二维码内容:
- // #FJMN#xczx@@模拟器序列号@@时间戳
- // 例:#FJMN#xczx@@mn3423424@@1677114420415
- if ([resultStr containsString:@"#FJMN#"] && resultStr.length > 8) {
- NSString *testString = [DES3Util decrypt:[resultStr substringFromIndex:6]];
- NSArray *array = [testString componentsSeparatedByString:@"@@"];
- NSString *devSn = array[1];
- NSString *timeStamp = array[2];
- NSMutableArray *arr = [NSMutableArray array];
- [arr addPro:@"devSn" Value:devSn];///设备ID
- [arr addPro:@"stuid" Value:RQ_USER_MANAGER.currentUser.outId];///学员ID
- [arr addPro:@"timestamp" Value:timeStamp];///时间戳
- [jiaPeiManager requestAnythingWithURL:@"phoneMnLogin" array:arr data:nil completion:^(NSDictionary * root) {
- NSString *body = root[@"body"];
- [RQ_SHARE_FUNCTION showAlertWithMessage:body completion:nil];
- return;
- }];
- }
- if ([resultStr containsString:@"#DECODE#"] && resultStr.length > 8) {
- ///程序内某些验证
- if([resultStr containsString:@"?text="]){ //特殊处理
- NSArray *components = [resultStr componentsSeparatedByString:@"?text="];
- resultStr = components.lastObject;
- }
- NSString *testString = [DES3Util decrypt:[resultStr substringFromIndex:8]];
- NSLog(@"\n原完整内容: %@ \n解密后: #DECODE#%@",resultStr,testString);
- // testString = @"#LNJP#huizhi@@BFEBFBFF000206A7@@1530258491165";
- if (testString == nil) {
- [RQ_SHARE_FUNCTION showAlertWithMessage:@"二维码内容格式错误(#DECODE#+异常字符串)" completion:nil];
- return;
- }
- //#DECODE##JSJP#PTMJ@@13503005883@@1611296660969@@119.206163@@26.03922@@1@@3503090060
- NSArray *array;
- if ([testString containsString:@"#JSJP#PTMJ"]) {
- ///莆田门禁入场/离场
- array = [testString componentsSeparatedByString:@"@@"];
- testString = [testString substringFromIndex:6];
- _rqQRCodeType = RQQRCodeType_PTMJ;
- /// 二维码明文
- /// #JSJP#PTMJ@@SIM卡号@@kind@@regionId@@1611042927509@@119.2065@@26.038985
- } else if ([testString containsString:@"#JSJP#PTSC"]) {
- ///莆田实操签到/签退
- array = [testString componentsSeparatedByString:@"@@"];
- testString = [testString substringFromIndex:6];
- _rqQRCodeType = RQQRCodeType_PTSC;
- /// 二维码明文
- /// #JSJP#PTSC@@13503003479@@1649213031058@@26.038049@@119.206105@@3@@1649212908@@17@@0@@2022-04-06 10:43:51@@0.0@@184.86@@3346341302335557
- /// //SIM,//时间戳,//纬度,//经度,//当前科目,//课堂classid,//扫码类型,//卫星定位速度,//GPS时间,//行驶记录速度,//方向 //学员编号 //是否开启水印 //车牌号 //教练名称
- } else if ([testString containsString:@"#ZJJP#"]) {
- testString = [testString substringFromIndex:6];
- array = [testString componentsSeparatedByString:@"@@"];
- _rqQRCodeType = RQQRCodeType_ZJJP;
- /// 二维码明文
- ///#ZJJP#12345678909@@1@@3310@@1677132394000
- ///#ZJJP#SIM卡号@@类型@@地区编号@@时间戳 (类型:1签到 2签退 3过程)
- } else if ([testString containsString:@"#FJCOACH#"]) {
- //testString = [testString substringFromIndex:9];
- array = [testString componentsSeparatedByString:@"@@"];
- [self bindStudentAppCoachIdArr:array];
- return;
- } else if ([testString containsString:@"#iats#"]) {//ning 新增 二维码 扫描 登录
- //#DECODE##iats#861766043407976;1708670874970
- testString = [testString substringFromIndex:6];
- array = [testString componentsSeparatedByString:@";"];
- // /iats-api/api/jsjpNotice
- [self noticeAppjsjpNoticeArr:array];
- return;
- }
- __block NSString *ptSubjectStr;
- self.PTSC6_str = @"";
- if (_rqQRCodeType == RQQRCodeType_PTSC && !RQObjectIsNil(array[5]) && !RQObjectIsNil(array[7])) {
- ptSubjectStr = array[5];
- self.PTSC6_str = [ptSubjectStr copy];
- NSString *trainTypeStr = array[7];
- if ([trainTypeStr isEqualToString:@"17"]) {
- if ([ptSubjectStr isEqualToString:@"5"] || RQStringIsEmpty(ptSubjectStr)) {
- NSMutableArray *editArr = array.mutableCopy;
- [RQ_ALERTVIEW_MANAGER showAlertWithTitle:@"温馨提示" message:@"请选择培训科目" confirmTitleOne:@"科目二" confirmTitleTwo:@"科目三" cancelTitle:@"取消" confirmOneAction:^{
- @strongify(self)
- RQ_PT_Object_Module.ptSubjectStr = @"2";
- [editArr replaceObjectAtIndex:5 withObject:RQ_PT_Object_Module.ptSubjectStr];
- [self postUploadScanCodeVerifyWithCodeArr:editArr.copy resultBlock:resultBlock];
- } confirmTwoAction:^{
- @strongify(self)
- RQ_PT_Object_Module.ptSubjectStr = @"3";
- [editArr replaceObjectAtIndex:5 withObject:RQ_PT_Object_Module.ptSubjectStr];
- [self postUploadScanCodeVerifyWithCodeArr:editArr.copy resultBlock:resultBlock];
- } cancleAction:^{
- resultBlock(NO);
- }];
- } else if ([ptSubjectStr isEqualToString:@"3"] || [ptSubjectStr isEqualToString:@"2"]) {
- RQ_PT_Object_Module.ptSubjectStr = ptSubjectStr;
- [self postUploadScanCodeVerifyWithCodeArr:array resultBlock:resultBlock];
- } else {
- [NSObject rq_showAlertViewWithTitle:@"温馨提示" message:@"无训练阶段相关参数" confirmTitle:@"确定"];
- resultBlock(NO);
- }
- } else if ([trainTypeStr isEqualToString:@"19"]) {
- if (RQStringIsNotEmpty(RQ_PT_Object_Module.ptSubjectStr)) {
- NSMutableArray *editArr = array.mutableCopy;
- [editArr replaceObjectAtIndex:5 withObject:RQ_PT_Object_Module.ptSubjectStr];
- [self postUploadScanCodeVerifyWithCodeArr:editArr.copy resultBlock:resultBlock];
- } else {
- [self postUploadScanCodeVerifyWithCodeArr:array resultBlock:resultBlock];
- }
- } else {
- [self postUploadScanCodeVerifyWithCodeArr:array resultBlock:resultBlock];
- }
- } else if (_rqQRCodeType == RQQRCodeType_ZJJP && !RQObjectIsNil(array[1])) {
- NSString *type = array[1];
- if ([type isEqualToString:@"1"]) {
- /// 如果是签到需要传科目
- if (!self.isShowChooseSubject) {
- self.isShowChooseSubject = YES;
- [RQ_ALERTVIEW_MANAGER showAlertWithTitle:@"温馨提示" message:@"请选择培训科目" confirmTitleOne:@"科目二" confirmTitleTwo:@"科目三" cancelTitle:@"取消" confirmOneAction:^{
- @strongify(self)
- RQ_PT_Object_Module.zjSubjectStr = @"2";
- [self zjmnWithArr:array];
- self.isShowChooseSubject = NO;
- } confirmTwoAction:^{
- @strongify(self)
- RQ_PT_Object_Module.zjSubjectStr = @"3";
- [self zjmnWithArr:array];
- self.isShowChooseSubject = NO;
- } cancleAction:^{
- @strongify(self)
- self.isShowChooseSubject = NO;
- }];
- }
- } else {
- /// 签退的时候科目传空字符
- RQ_PT_Object_Module.zjSubjectStr = @"";
- [self zjmnWithArr:array];
- }
- } else {
- [self postUploadScanCodeVerifyWithCodeArr:array resultBlock:resultBlock];
- }
- } else {
- NSString *testString = [DES3Util decrypt:resultStr];
- NSLog(@"%@",testString);
- }
- }
- //通知设备登录成功
- - (void)noticeAppjsjpNoticeArr:(NSArray *)array {
- NSString *muserId = array[0];
- NSString *timestamp = array[1];
- //时间戳判断
- long long this_timestamp = [[NSDate date] timeIntervalSince1970]*1000;
- if(this_timestamp-[timestamp longLongValue]>60*5*1000){
- ShowMsg(@"操作超时!");
- return;
- }
- NSMutableArray *arr = [NSMutableArray array];
- [arr addPro:@"idcard" Value:RQ_USER_MANAGER.currentUser.loginCode];
- [arr addPro:@"imei" Value:muserId];
- [arr addPro:@"status" Value:@"1"];
- [MBProgressHUD rq_showProgressHUD:@""];
- [jiaPeiManager requestAnythingWithURL:@"jsjpNotice" array:arr data:nil completion:^(NSDictionary * result) {
- NSLog(@"dict=%@",result);
- if(result){
- int code = [result[@"code"] intValue];
- if(code==0){
- //成功
- NSLog(@"通知设备登录成功");
- }
- [RQ_SHARE_FUNCTION showAlertWithMessage:result[@"msg"] completion:nil];
- }
- [MBProgressHUD rq_hideHUD];
- }];
- }
- //绑定教练id
- - (void)bindStudentAppCoachIdArr:(NSArray *)array {
- //学员绑定教练ID(新需求) - 2023-07-06
- //#FJCOACH#@@315483254@@3501
- NSString *appCoachId = array[1];
- NSString *dqbh = array[2];
- if([dqbh isEqualToString:RQ_USER_MANAGER.currentUser.city]){
- NSMutableArray *arr = [NSMutableArray array];
- [arr addPro:@"appCoachId" Value:appCoachId];
- [arr addPro:@"city" Value:RQ_USER_MANAGER.currentUser.city];
- [arr addPro:@"id" Value:RQ_USER_MANAGER.currentUser.outId];
- [MBProgressHUD rq_showProgressHUD:@""];
- [jiaPeiManager requestGetWithURL:@"jsjp-admin/open-api/tms/coachInfo/updateStudentAppCoachIdById" array:arr appendurlString:nil completion:^(id result) {
- NSLog(@"dict=%@",result);
- int code = [result[@"code"] intValue];
- if(code==0){
- //成功
- NSLog(@"绑定成功");
- }
- [RQ_SHARE_FUNCTION showAlertWithMessage:result[@"msg"] completion:nil];
- [MBProgressHUD rq_hideHUD];
- }];
- }else {
- ShowMsg(@"教练和学员不在同一个地区,无法绑定!");
- }
- }
- - (void)zjmnWithArr:(NSArray *)array {
- @weakify(self)
- [[RACScheduler mainThreadScheduler] afterDelay:0.5 schedule:^{
- [RQ_CHECKBODY_MANAGER beginCheckBodyWithCheckNum:0 checkBodyType:RQCheckBodyType_PTSC waterMarkArr:@[] completeBlock:^(BOOL success, NSDictionary * _Nullable dic) {
- @strongify(self)
- if (success) {
- [self face2faceWithQRCodeType:_rqQRCodeType rqCodeArr:array photo:dic[@"normalImg"] resultBlock:^(BOOL isSuccess, id a) {
- @strongify(self)
- if (isSuccess) {
- if (!RQObjectIsNil(a)) {
- NSDictionary *dic = a;
- NSString *str = dic[@"body"];
- if (RQStringIsNotEmpty(str)) {
- NSMutableArray *uploadTrainFileMnArr = [NSMutableArray array];
- [uploadTrainFileMnArr addPro:@"objid" Value:RQ_USER_MANAGER.currentUser.outId];///学员ID
- [uploadTrainFileMnArr addPro:@"dqbh" Value:RQ_USER_MANAGER.currentUser.city];///地区编号
- [uploadTrainFileMnArr addPro:@"sim" Value:array[0]];///SIM卡号
- [uploadTrainFileMnArr addPro:@"event" Value:array[1]];///扫码类型:1 签到 2签退 3培训过程
- [uploadTrainFileMnArr addPro:@"classId" Value:@""];///課堂ID
- [uploadTrainFileMnArr addPro:@"photo" Value:str];///人脸照片
- NSInteger timeStamp = [RQ_SHARE_FUNCTION getTimeStampWithDate:[NSDate date]];
- NSString *timeStampStr = [NSString stringWithFormat:@"%@",[NSNumber numberWithInteger:timeStamp]];
- if (timeStampStr.length < 10) {
- timeStampStr = [NSString stringWithFormat:@"%@",[NSNumber numberWithInteger:[NSString rq_randomNumberWithFrom:1647311377 to:9999999999]]];
- } else if (timeStampStr.length > 10) {
- timeStampStr = [timeStampStr substringFromIndex:timeStampStr.length - 10];
- }
- [uploadTrainFileMnArr addPro:@"picno" Value:timeStampStr];///照片编号
-
- NSString *type = array[1];
- if ([type isEqualToString:@"1"]) {
- /// 签到的时候先签到后上传图片
- [self uploadZjmnLoginWithArray:array resultBlock:^(BOOL isSuccess) {
- @strongify(self)
- if (isSuccess) {
- [self uploadTrainFileMnWithArray:uploadTrainFileMnArr.copy resultBlock:^(BOOL isSuccess) {
-
- }];
- }
- }];
- } else {
- /// 签退的时候先上传图片后签退
- [self uploadTrainFileMnWithArray:uploadTrainFileMnArr.copy resultBlock:^(BOOL isSuccess) {
- @strongify(self)
- if (isSuccess) {
- [self uploadZjmnLoginWithArray:array resultBlock:^(BOOL isSuccess) {
- if (isSuccess) {
- NSLog(@"签退成功");
- }
- }];
- } else {
-
- }
- }];
- }
- }
-
-
-
- }
- }
- }];
- }
- }];
- }];
- }
- - (void)postUploadScanCodeVerifyWithCodeArr:(NSArray *)array resultBlock:(void (^)(BOOL isSuccess))resultBlock {
- [MBProgressHUD rq_showProgressHUD:@"正在获取当前位置..."];
- [RQ_MAP_MANAGER updateLocationWithCompleteBlock:^(BOOL success, CLLocation * _Nonnull location, BMKLocation * _Nullable bmkLocation) {
- [MBProgressHUD rq_hideHUD];
- if (success) {
- NSString *method = @"uploadScanCodeVerify";
- NSInteger faceNum = RQPuTianFaceNum;
- NSMutableArray *arr = [NSMutableArray array];
- NSArray *waterMaekArr = @[];
-
- [arr addPro:@"stuid" Value:RQ_USER_MANAGER.currentUser.outId];///学员ID
- [arr addPro:@"dqbh" Value:RQ_USER_MANAGER.currentUser.city];///地区编号
- [arr addPro:@"lng" Value:[NSString stringWithFormat:@"%f",location.coordinate.longitude]];///手机经度
- [arr addPro:@"lat" Value:[NSString stringWithFormat:@"%f",location.coordinate.latitude]];///手机纬度
-
- if (_rqQRCodeType == RQQRCodeType_PTMJ) {
- [arr addPro:@"kind" Value:array[5]];///扫码类型:1 :入场; 2:离场
- [arr addPro:@"sim" Value:array[1]];///SIM卡号
- [arr addPro:@"regionId" Value:array[6]];///场地ID
- [arr addPro:@"timestamp" Value:array[2]];///时间戳
- [arr addPro:@"devlng" Value:array[3]];///设备经度
- [arr addPro:@"devlat" Value:array[4]];///设备纬度
- method = @"uploadScanCodeVerify";
- faceNum = RQPuTianFaceNum;
- } else if (_rqQRCodeType == RQQRCodeType_PTSC) {
- [arr addPro:@"stunum" Value:array[12]];///学员编号
- [arr addPro:@"subject" Value:array[5]];///当前扫码训练阶段
- [arr addPro:@"imei" Value:[FCUUID uuidForDevice]];///唯一识别号
- [arr addPro:@"event" Value:array[7]];///扫码类型:17 签到 19签退
- [arr addPro:@"sim" Value:array[1]];///SIM卡号
- [arr addPro:@"timestamp" Value:array[2]];///时间戳
- [arr addPro:@"devlng" Value:array[4]];///设备经度
- [arr addPro:@"devlat" Value:array[3]];///设备纬度
- method = @"uploadScCodeVerify";
- faceNum = RQ_USER_MANAGER.scbdFaceCount;//后台配置-根据地区变化
- BOOL isOpenWater = array.count > 14? (RQObjectIsNil(array[13])? NO : ![[NSNumber numberWithString:array[13]] boolValue]) : NO;
- waterMaekArr = isOpenWater? @[[NSDate rq_currentTimestamp],
- [NSString stringWithFormat:@"经纬度:%@,%@",[NSString stringWithFormat:@"%f",location.coordinate.longitude],[NSString stringWithFormat:@"%f",location.coordinate.latitude]],
- [NSString stringWithFormat:@"教练姓名:%@",[NSString stringWithFormat:@"%@",array[15]]],
- [NSString stringWithFormat:@"学员姓名:%@",[NSString stringWithFormat:@"%@",RQStringIsNotEmpty(RQ_USER_MANAGER.currentUser.userName)? RQ_USER_MANAGER.currentUser.userName : @""]],
- [NSString stringWithFormat:@"车牌号:%@",[NSString stringWithFormat:@"%@",array[14]]],
- [NSString stringWithFormat:@"驾校:%@",[NSString stringWithFormat:@"%@",RQStringIsNotEmpty(RQ_USER_MANAGER.currentUser.schInfo.name)? RQ_USER_MANAGER.currentUser.schInfo.name : @""]],
- [NSString stringWithFormat:@"车速:%@km/h",[NSString stringWithFormat:@"%@",array[10]]],
- ] : @[];
- }
- [MBProgressHUD rq_showProgressHUD:@"验证中..."];
- [jiaPeiManager requestAnythingWithURL:method array:arr data:nil completion:^(NSDictionary * root) {
- [MBProgressHUD rq_hideHUD];
- if (!root) {
- resultBlock(NO);
- [RQ_SHARE_FUNCTION showAlertWithMessage:@"操作失败,请重试!" completion:nil];
- [Tools playAudioWithString:@"操作失败,请重试!"];
- return;
- }
- if ([root[@"code"] integerValue] == 0) {
- dispatch_async(dispatch_get_main_queue(), ^{
- [RQ_CHECKBODY_MANAGER beginCheckBodyWithCheckNum:faceNum checkBodyType:RQCheckBodyType_PTSC waterMarkArr:waterMaekArr completeBlock:^(BOOL success, NSDictionary * _Nullable dic) {
- if (success) {
- [self face2faceWithQRCodeType:_rqQRCodeType rqCodeArr:array photo:dic[@"normalImg"] resultBlock:^(BOOL isSuccess, id a) {
- resultBlock(isSuccess);
- }];
- }
- }];
- });
- } else {
- resultBlock(NO);
- if ([root[@"body"] isKindOfClass:[NSString class]] && ![root[@"body"] isEqualToString:@""]) {
- [Tools playAudioWithString:root[@"body"]];
- [RQ_SHARE_FUNCTION showAlertWithMessage:root[@"body"] completion:nil];
- [Bugly reportException:[NSException exceptionWithName:[NSString stringWithFormat:@"uploadScCodeVerify---%@",root[@"body"]] reason:[arr jsonStringEncoded] userInfo:[RQ_USER_MANAGER.currentUser dictionaryValue]]];
- } else {
- [RQ_SHARE_FUNCTION showAlertWithMessage:@"操作失败,请重试!" completion:nil];
- [Tools playAudioWithString:@"操作失败,请重试!"];
- }
- }
- }];
- } else {
- resultBlock(NO);
- [RQ_SHARE_FUNCTION showAlertWithMessage:@"定位失败!" completion:nil];
- }
- }];
- }
- #pragma mark - PrivateMethods
- - (void)face2faceWithQRCodeType:(RQQRCodeType)rqCodeType rqCodeArr:(NSArray *)rqCodeArr photo:(NSString *)photoStr resultBlock:(void (^)(BOOL isSuccess , __nullable id a))resultBlock {
- @weakify(self)
- if (![Util connectedToNetWork]) {
- showMsgUnconnect();
- resultBlock(NO, nil);
- return;
- }
-
- if ([photoStr isEqualToString:@"(null)"] || [photoStr isEqualToString:@""]) {
- resultBlock(NO, nil);
- return;
- }
-
- [MBProgressHUD rq_showProgressHUD:@"正在获取当前位置..."];
- [RQ_MAP_MANAGER updateLocationWithCompleteBlock:^(BOOL success, CLLocation * _Nonnull location, BMKLocation * _Nullable bmkLocation) {
- [MBProgressHUD rq_hideHUD];
- if (success) {
- NSString *method;
- NSTimeInterval timeI = [[NSDate date] timeIntervalSince1970] * 1000;//获取时间戳 单位:s *1000毫秒
- NSInteger timeInt = [NSString stringWithFormat:@"%.0f",timeI].integerValue;
- NSString *currentTimeStr = [NSString stringWithFormat:@"%ld",timeInt];
- if (currentTimeStr.length > 10) {
- currentTimeStr = [currentTimeStr substringFromIndex:currentTimeStr.length - 10];
- }
- NSMutableArray *arr = [NSMutableArray array];
-
- [arr addPro:@"objid" Value:RQ_USER_MANAGER.currentUser.outId];///学员ID或教练ID
- [arr addPro:@"dqbh" Value:RQ_USER_MANAGER.currentUser.city];///地区编号
- [arr addPro:@"photo" Value:photoStr? : @""];///照片Base64数据
-
- if (rqCodeType == RQQRCodeType_PTMJ) {
- method = @"mjFace2face";
- [arr addPro:@"type" Value:@"1"];///拍照类型:1 :学员; 2:教练
- [arr addPro:@"kind" Value:rqCodeArr[5]];///扫码类型:1 :入场; 2:离场
- [arr addPro:@"sim" Value:rqCodeArr[1]];///SIM卡号
- [arr addPro:@"regionId" Value:rqCodeArr[6]];///场地ID
- [arr addPro:@"lng" Value:[NSString stringWithFormat:@"%f",location.coordinate.longitude]];///手机经度
- [arr addPro:@"lat" Value:[NSString stringWithFormat:@"%f",location.coordinate.latitude]];///手机纬度
- method = @"mjFace2face";
- } else if (rqCodeType == RQQRCodeType_PTSC) {
- method = @"mjFace2face";
- [arr addPro:@"type" Value:@"1"];///拍照类型:1 :学员; 2:教练
- [arr addPro:@"classId" Value:rqCodeArr[6]];///课堂ID
- [arr addPro:@"subject" Value:rqCodeArr[5]];///当前扫码训练阶段
- [arr addPro:@"imei" Value:[FCUUID uuidForDevice]];///唯一识别号
- [arr addPro:@"event" Value:rqCodeArr[7]];///扫码类型:17 签到 19签退
- [arr addPro:@"sim" Value:rqCodeArr[1]];///SIM卡号
- [arr addPro:@"speed" Value:rqCodeArr[8]];///卫星定位速度
- [arr addPro:@"gpstime" Value:rqCodeArr[9]];///GPS时间
- [arr addPro:@"drispeed" Value:rqCodeArr[10]];///行驶记录速度
- [arr addPro:@"direction" Value:rqCodeArr[11]];///卫星定位速度
- [arr addPro:@"picno" Value:currentTimeStr];///照片编号
- [arr addPro:@"lng" Value:[[NSString stringWithFormat:@"%@",rqCodeArr[4]] stringByReplacingOccurrencesOfString:@"." withString:@""]];///设备经度
- [arr addPro:@"lat" Value:[[NSString stringWithFormat:@"%@",rqCodeArr[3]] stringByReplacingOccurrencesOfString:@"." withString:@""]];///设备纬度
- method = @"scFace2face";
- } else if (rqCodeType == RQQRCodeType_ZJJP) {
- method = @"zjFace2face";
- [arr addPro:@"sim" Value:rqCodeArr[0]];///SIM卡号
- [arr addPro:@"event" Value:rqCodeArr[1]];///扫码类型:1 签到 2签退 3培训过程
- } else {
- method = @"mjFace2face";
- [arr addPro:@"type" Value:@"1"];///拍照类型:1 :学员; 2:教练
- }
-
- [MBProgressHUD rq_showProgressHUD:@"验证中..."];
- [jiaPeiManager requestAnythingWithURL:method array:arr data:nil completion:^(NSDictionary * root) {
- @strongify(self)
- [MBProgressHUD rq_hideHUD];
- if (!root) {
- resultBlock(NO, nil);
- [RQ_SHARE_FUNCTION showAlertWithMessage:@"操作失败,请重试!" completion:nil];
- [Tools playAudioWithString:@"操作失败,请重试!"];
- return;
- }
- if ([root[@"code"] integerValue] == 0) {
- resultBlock(YES, root);
- if ([root[@"body"] isKindOfClass:[NSString class]] && ![root[@"body"] isEqualToString:@""]) {
- if (self.rqQRCodeType == RQQRCodeType_ZJJP) {
-
- } else {
- [Tools playAudioWithString:root[@"body"]];
- [RQ_SHARE_FUNCTION showAlertWithMessage:root[@"body"] completion:nil];
- }
- } else {
- if (self.rqQRCodeType == RQQRCodeType_PTSC) {
- NSString *message = @"操作成功!";
- if([self.PTSC6_str isEqualToString:@"5"]){
- if ([rqCodeArr[7] integerValue] == 17) {
- message = @"扫码签到验证成功,请等待设备响应";
- } else if ([rqCodeArr[7] integerValue] == 19) {
- message = @"扫码签退验证成功,请等待设备响应";
- }
- }else{
- message = @"扫码成功, 请在设备进行下一步操作";
- }
- [RQ_SHARE_FUNCTION showAlertWithMessage:message completion:nil];
- [Tools playAudioWithString:message];
- } else if (self.rqQRCodeType == RQQRCodeType_ZJJP) {
-
- } else {
- [RQ_SHARE_FUNCTION showAlertWithMessage:@"操作成功!" completion:nil];
- [Tools playAudioWithString:@"操作成功!"];
- }
- }
- } else {
- resultBlock(NO, nil);
- if ([root[@"body"] isKindOfClass:[NSString class]] && ![root[@"body"] isEqualToString:@""]) {
- [Tools playAudioWithString:root[@"body"]];
- [RQ_SHARE_FUNCTION showAlertWithMessage:root[@"body"] completion:nil];
- } else {
- [RQ_SHARE_FUNCTION showAlertWithMessage:@"操作失败,请重试!" completion:nil];
- [Tools playAudioWithString:@"操作失败,请重试!"];
- }
- }
- }];
- } else {
- resultBlock(NO, nil);
- [RQ_SHARE_FUNCTION showAlertWithMessage:@"定位失败!" completion:nil];
- }
- }];
- }
- - (void)uploadZjmnLoginWithArray:(NSArray *)array resultBlock:(void (^)(BOOL isSuccess))resultBlock {
- if (![Util connectedToNetWork]) {
- showMsgUnconnect();
- resultBlock(NO);
- return;
- }
- NSString *trainTypeStr = array[1];
-
-
- NSInteger timeStamp = [RQ_SHARE_FUNCTION getTimeStampWithDate:[NSDate date]];
- NSString *timeStampStr = [NSString stringWithFormat:@"%@",[NSNumber numberWithInteger:timeStamp]];
- NSString *classIdStr = timeStampStr;
- if (classIdStr.length < 10) {
- /// 如果生成时间戳错误 用一个随机十位数代替
- classIdStr = [NSString stringWithFormat:@"%@",[NSNumber numberWithInteger:[NSString rq_randomNumberWithFrom:1647311377 to:9999999999]]];
- } else if (classIdStr.length > 10) {
- classIdStr = [classIdStr substringFromIndex:classIdStr.length - 10];
- }
-
- if ([trainTypeStr isEqualToString:@"1"]) {
- [QMUITips showLoading:@"签到中..." inView:DefaultTipsParentView];
- // [MBProgressHUD rq_showProgressHUD:@"签到中..."];
- } else if ([trainTypeStr isEqualToString:@"2"]) {
- // [MBProgressHUD rq_showProgressHUD:@"签退中..."];
- [QMUITips showLoading:@"签退中..." inView:DefaultTipsParentView];
- classIdStr = @"";
- }
-
- NSString *method = @"uploadZjmnLogin";
- NSMutableArray *arr = [NSMutableArray array];
- [arr addPro:@"stuid" Value:RQ_USER_MANAGER.currentUser.outId];///学员ID
- [arr addPro:@"dqbh" Value:RQ_USER_MANAGER.currentUser.city];///地区编号
- [arr addPro:@"sim" Value:array[0]];///SIM卡号
- [arr addPro:@"event" Value:array[1]];///扫码类型:1 签到 2签退 3培训过程
- [arr addPro:@"subject" Value:RQ_PT_Object_Module.zjSubjectStr];///当前扫码训练阶段
- [arr addPro:@"classId" Value:classIdStr];///課堂ID
- [arr addPro:@"timestamp" Value:array[3]];///时间戳
- if (array.count > 4) {
- [arr addPro:@"trainModel" Value:array[4]];/// 2 普通模拟 8考核模拟
- }
- ///
- [jiaPeiManager requestAnythingWithURL:method array:arr data:nil completion:^(NSDictionary * root) {
- // [MBProgressHUD rq_hideHUD];
- [QMUITips hideAllTips];
- if (!root) {
- resultBlock(NO);
- [QMUITips showError:@"操作失败,请重试!"];
- // [RQ_SHARE_FUNCTION showAlertWithMessage:@"操作失败,请重试!" completion:nil];
- [Tools playAudioWithString:@"操作失败,请重试!"];
- return;
- }
- if ([root[@"code"] integerValue] == 0) {
- resultBlock(YES);
- if ([root[@"body"] isKindOfClass:[NSString class]] && ![root[@"body"] isEqualToString:@""]) {
- [Tools playAudioWithString:root[@"body"]];
- [QMUITips showSucceed:root[@"body"]];
- // [RQ_SHARE_FUNCTION showAlertWithMessage:root[@"body"] completion:nil];
- } else {
- [QMUITips showError:@"操作成功!"];
- // [RQ_SHARE_FUNCTION showAlertWithMessage:@"操作成功!" completion:nil];
- [Tools playAudioWithString:@"操作成功!"];
- }
- } else {
- resultBlock(NO);
- if ([root[@"body"] isKindOfClass:[NSString class]] && ![root[@"body"] isEqualToString:@""]) {
- [Tools playAudioWithString:root[@"body"]];
- // [RQ_SHARE_FUNCTION showAlertWithMessage:root[@"body"] completion:nil];
- [QMUITips showError:root[@"body"]];
- } else {
- [QMUITips showError:@"操作失败,请重试!"];
- // [RQ_SHARE_FUNCTION showAlertWithMessage:@"操作失败,请重试!" completion:nil];
- [Tools playAudioWithString:@"操作失败,请重试!"];
- }
- }
- }];
- }
- - (void)uploadTrainFileMnWithArray:(NSArray *)array resultBlock:(void (^)(BOOL isSuccess))resultBlock {
- if (![Util connectedToNetWork]) {
- resultBlock(NO);
- showMsgUnconnect();
- return;
- }
- NSString *method = @"uploadTrainFileMn";
- [jiaPeiManager requestAnythingWithURL:method array:array data:nil completion:^(NSDictionary * root) {
- if (!root) {
- resultBlock(NO);
- [RQ_SHARE_FUNCTION showAlertWithMessage:@"上传失败,请重试!" completion:nil];
- [Tools playAudioWithString:@"上传失败,请重试!"];
- return;
- }
- if ([root[@"code"] integerValue] == 0) {
- resultBlock(YES);
- } else {
- resultBlock(NO);
- if ([root[@"body"] isKindOfClass:[NSString class]] && ![root[@"body"] isEqualToString:@""]) {
- [Tools playAudioWithString:root[@"body"]];
- [RQ_SHARE_FUNCTION showAlertWithMessage:root[@"body"] completion:nil];
- }
- }
- }];
- }
- - (NSString *)ptSubjectStr {
- NSString *key = [NSString stringWithFormat:@"ptSubjectStr-%@",RQ_USER_MANAGER.currentUser.stuNum];
- id object = [self getObjectWithKey:key];
- if (RQObjectIsNil(object)) {
- return @"";
- } else {
- NSString *myPtSubjectStr = (NSString *)object;
- return myPtSubjectStr;
- }
- }
- - (void)setPtSubjectStr:(NSString *)ptSubjectStr {
- NSString *key = [NSString stringWithFormat:@"ptSubjectStr-%@",RQ_USER_MANAGER.currentUser.stuNum];
- [self saveObjectWithObject:ptSubjectStr ForKey:key];
- }
- - (NSString *)zjSubjectStr {
- NSString *key = [NSString stringWithFormat:@"zjSubjectStr-%@",RQ_USER_MANAGER.currentUser.stuNum];
- id object = [self getObjectWithKey:key];
- if (RQObjectIsNil(object)) {
- return @"";
- } else {
- NSString *myZjSubjectStr = (NSString *)object;
- return myZjSubjectStr;
- }
- }
- - (void)setZjSubjectStr:(NSString *)zjSubjectStr {
- NSString *key = [NSString stringWithFormat:@"zjSubjectStr-%@",RQ_USER_MANAGER.currentUser.stuNum];
- [self saveObjectWithObject:zjSubjectStr ForKey:key];
- }
- - (void)saveObjectWithObject:(id)object ForKey:(NSString* )key {
- NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
- if (!object) {
- [ud removeObjectForKey:key];
- }else{
- [ud setObject:object forKey:key];
- }
- [ud synchronize];
- }
- - (id)getObjectWithKey:(NSString *)key {
- NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
- return [ud objectForKey:key];
- }
- @end
|