JONEWDYTableView.m 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892
  1. //
  2. // JONEWDYTableView.m
  3. // shiku_im
  4. //
  5. // Created by 周兵 on 16/7/22.
  6. // Copyright © 2016年 Reese. All rights reserved.
  7. //
  8. #import "JONEWDYTableView.h"
  9. //订阅模型
  10. #import "JODYModel.h"
  11. //订阅自定义cell
  12. #import "JODYCell.h"
  13. //字典转模型
  14. #import "MJExtension.h"
  15. //跳转webView
  16. #import "JODYWebViewController.h"
  17. //footView
  18. #import "JOFootview.h"
  19. //字典工具
  20. #import "NSDictionary+JOExtension.h"
  21. //数据库
  22. //菜单按钮
  23. #import "KxMenu.h"
  24. #import "subscribeManageViewController.h"
  25. #import "NewSubscribleManageViewController.h"
  26. #define orderDataTableName [NSString stringWithFormat:@"%@%@%@",JODINGYUEHAO,g_companyName,g_companyMaster]
  27. @interface JONEWDYTableView()<UITableViewDataSource,UITableViewDelegate,UIScrollViewDelegate>
  28. {
  29. NSString *dataTime;
  30. NSMutableArray * dataArray;
  31. int numMark;
  32. int k;//刷新
  33. NSArray * dataArr;
  34. //下拉刷新
  35. UIRefreshControl *control;
  36. UITableView * _tableView;
  37. UIImageView *_noData;
  38. }
  39. /**一个JODYModel代表一个订阅号*/
  40. @property (nonatomic,strong) NSMutableArray * modelData;
  41. @property (nonatomic,assign) NSInteger indexPage;
  42. @property (nonatomic,assign) NSInteger indexaa;
  43. @end
  44. @implementation JONEWDYTableView
  45. //懒加载订阅数据数据
  46. - (NSMutableArray *)modelData
  47. {
  48. if (!_modelData) {
  49. self.modelData = [NSMutableArray array];
  50. }
  51. return _modelData;
  52. }
  53. - (void)viewDidLoad {
  54. [super viewDidLoad];
  55. [self setNaviAndMainUI];
  56. //设置右侧按钮
  57. // [self setRightBtn];
  58. }
  59. - (void)setNaviAndMainUI
  60. {
  61. self.navigationItem.title = Localized(@"UU_message_mySubscribe");
  62. self.navigationController.navigationBar.tintColor=[UIColor whiteColor];
  63. UIBarButtonItem * rightButton = [[UIBarButtonItem alloc]initWithTitle:Localized(@"UU_message_mySubscribe_manage") style:UIBarButtonItemStyleDone target:self action:@selector(clickRightButton)];
  64. self.navigationItem.rightBarButtonItem = rightButton;
  65. UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeSystem];
  66. btn2.frame = CGRectMake(0, 5, 22, 22);
  67. CGFloat imageY = 0;
  68. if (iOS11) {
  69. imageY = 5;
  70. }
  71. UIImageView *image = [[UIImageView alloc]initWithFrame:CGRectMake(0, imageY, 22, 22)];
  72. image.image = [UIImage imageNamed:@"icon_back_nor3"];
  73. [btn2 addSubview:image];
  74. [btn2 addTarget:self action:@selector(buttonBack) forControlEvents:UIControlEventTouchUpInside];
  75. UIBarButtonItem *bbi2 = [[UIBarButtonItem alloc]initWithCustomView:btn2];
  76. self.navigationItem.leftBarButtonItems = @[bbi2];
  77. /**修改字体大小*/
  78. [self.navigationItem.rightBarButtonItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:YBLBFont(17),NSFontAttributeName, nil] forState:UIControlStateNormal];
  79. [self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
  80. //下拉刷新,接受刷新过来的数组
  81. dataArray=[[NSMutableArray alloc]init];
  82. //记录刷新次数
  83. k=0;
  84. _indexaa = 0;
  85. /**tableView初始化*/
  86. _tableView=[[UITableView alloc]initWithFrame:CGRectMake(0,0,self_width, self_height)];
  87. _tableView.backgroundColor=Color(235, 233, 233, 1.0);
  88. _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  89. [self.view addSubview:_tableView];
  90. [_tableView mas_makeConstraints:^(MASConstraintMaker *make) {
  91. make.top.left.bottom.right.equalTo(self.view);
  92. }];
  93. _tableView.delegate=self;
  94. _tableView.dataSource=self;
  95. // //只有用户通过手动下拉刷新,才会触发UIControlEventValueChanged事件
  96. // control = [[UIRefreshControl alloc] init];
  97. //
  98. // [control addTarget:self action:@selector(loadNewData:) forControlEvents:UIControlEventValueChanged];
  99. //
  100. // [_tableView addSubview:control];
  101. //
  102. //
  103. // JOLoadMoreFooter *footer = [JOLoadMoreFooter footer];
  104. // footer.hidden = NO;
  105. // _tableView.tableFooterView = footer;
  106. //
  107. //
  108. //#pragma mark -- 数据库操作
  109. // //马上进入刷新状态(仅仅是显示刷新状态,并不会触发UIControlEventValueChanged事件)
  110. // [control beginRefreshing];
  111. self.view.backgroundColor = RGB(255, 255, 255);
  112. _noData = [[UIImageView alloc]init];
  113. _noData.image = [UIImage imageNamed:@"crm_all_noData"];
  114. _noData.hidden = YES;
  115. [self.view addSubview:_noData];
  116. [_noData mas_makeConstraints:^(MASConstraintMaker *make) {
  117. make.width.mas_equalTo(100);
  118. make.height.mas_equalTo(126);
  119. make.center.equalTo(self.view);
  120. }];
  121. [self loadNewData];
  122. //马上加载数据
  123. // [self loadNewData:control];
  124. //首先 进来先取数据库数据
  125. // [self getAllDataFromFMDB];
  126. //[self createFMDB];
  127. /**设置所有的子界面返回按钮一致*/
  128. // UIBarButtonItem * backBtn=[[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];
  129. // self.navigationItem.backBarButtonItem=backBtn;
  130. [self setupFooter];
  131. [self setupHeader];
  132. if (![[[NSUserDefaults standardUserDefaults] objectForKey:@"Mydingyue"] isEqualToString:@"click"])
  133. {
  134. [self newUserGuide];
  135. }
  136. }
  137. -(void)buttonBack{
  138. [self.navigationController popViewControllerAnimated:YES];
  139. }
  140. - (void)backView{
  141. [self.navigationController popViewControllerAnimated:YES];
  142. }
  143. -(void)clickRightButton
  144. {
  145. [[NSUserDefaults standardUserDefaults] setObject:@"click" forKey:@"Mydingyue"];
  146. NewSubscribleManageViewController * subVC =[[NewSubscribleManageViewController alloc]init];
  147. [self.navigationController pushViewController:subVC animated:YES];
  148. }
  149. //下拉刷新相关函数
  150. - (void)setupHeader
  151. {
  152. __weak typeof(self) weakSelf = self;
  153. _tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
  154. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  155. [weakSelf loadNewData];
  156. // [self showNewStatusCount:0];
  157. // [JOShowMessageFromNavi showDropViewWithMessage:@"没有新的订阅数据" ToNavi:self.navigationController withColor:nil];
  158. __strong typeof(JONEWDYTableView) *strongSelf = weakSelf;
  159. strongSelf->_indexaa ++;
  160. [strongSelf->_tableView.mj_header endRefreshing];
  161. });
  162. }];
  163. // 进入页面自动加载一次数据
  164. //[refreshHeader beginRefreshing];
  165. }
  166. //上啦刷新
  167. - (void)setupFooter
  168. {
  169. __weak typeof(self) weakSelf = self;
  170. _tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
  171. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  172. [weakSelf loadNewData];
  173. });
  174. }];
  175. }
  176. /*
  177. 创建数据库
  178. */
  179. - (void)createFMDB
  180. {
  181. /**创建数据库对象*/
  182. /**创建表*/
  183. [self JOCreateTableOfJODYModel];
  184. // /**插入数据*/
  185. // [self JOInsetTabledata:fmdb_obj WithDataArray:nil];
  186. /**查询数据*/
  187. NSArray * array= [self selectTableData];
  188. DLog(@"array=%@",array);
  189. for (int i=0; i<array.count; i++)
  190. {
  191. JODYModel * model=[[JODYModel alloc]init];
  192. model=array[i];
  193. // DLog(@"CREATEDATE=%@ EMP_ID=%@ ID=%ld INSTANCE_ID=%ld NUM_ID_=%@ SON_TITLE=%@ SONTITLE=%@ STATUS_=%ld SUMDATA_=%@ RN=%ld TITLE=%@ ",model.CREATEDATE_,model.EMP_ID_,(long)model.ID_,(long)model.INSTANCE_ID_,model.NUM_ID_,model.SON_TITLE_,model.SONTITLE_,(long)model.STATUS_,model.SUMDATA_,(long)model.RN,model.TITLE_);
  194. //
  195. // DLog(@"_______________________");
  196. }
  197. }
  198. /**
  199. 查询数据
  200. */
  201. - (NSArray *)selectTableData
  202. {
  203. [[TIFmdbManager shareManager] createOrOpenDatabasaOnCurrentThreadWithDbName:DY_NAME];
  204. NSArray *zbk = [[TIFmdbManager shareManager] findDataOnCurrentThreadWithDb:DY_NAME excuteBlock:^NSArray *(FMDatabase *db) {
  205. NSMutableArray * listarr=[[NSMutableArray alloc]init];
  206. NSString *sql = [NSString stringWithFormat:@"SELECT * FROM %@",orderDataTableName];
  207. FMResultSet *rs = [db executeQuery:sql];
  208. while ([rs next])
  209. {
  210. JODYModel * model1=[[JODYModel alloc]init];
  211. model1.CREATEDATE_ = [rs stringForColumn:_CREATEDATE_];
  212. model1.NUM_ID_ =[NSNumber numberWithInt:[rs intForColumn:_NUM_ID_]];
  213. model1.EMP_ID_ = [NSNumber numberWithInt:[rs intForColumn:_EMP_ID_]];
  214. model1.ID_ = [NSNumber numberWithInt:[rs intForColumn:_ID_]];
  215. model1.INSTANCE_ID_ = [NSNumber numberWithInt:[rs intForColumn:_INSTANCE_ID_]];
  216. model1.STATUS_ = [rs stringForColumn:_STATUS_];
  217. model1.TITLE_ = [rs stringForColumn:_TITLE_];
  218. model1.SON_TITLE_ = [rs stringForColumn:_SON_TITLE_];
  219. model1.SONTITLE_ = [rs stringForColumn:_SONTITLE_];
  220. // model1.RN=[rs intForColumn:_RN];
  221. model1.SUMDATA_ = [rs stringForColumn:_SUMDATA_];
  222. [listarr addObject:model1];
  223. }
  224. return listarr;
  225. }];
  226. return zbk;
  227. }
  228. /**
  229. 创建列表
  230. */
  231. - (void)JOCreateTableOfJODYModel
  232. {
  233. [[TIFmdbManager shareManager] createOrOpenDatabasaOnCurrentThreadWithDbName:DY_NAME];
  234. [[TIFmdbManager shareManager] executeOnCurrentThreadWithDb:DY_NAME excuteDbBlock:^(FMDatabase *db) {
  235. //创建表
  236. NSString *createTableSqlStr=[NSString stringWithFormat:
  237. @"CREATE TABLE IF NOT EXISTS %@ (id INTEGER PRIMARY KEY AUTOINCREMENT, %@ TEXT, %@ INTEGER ,%@ INTEGER,%@ INTEGER,%@ INTEGER, %@ TEXT, %@ TEXT, %@ TEXT, %@ INTERGE, %@ TEXT,%@ TEXT)",
  238. orderDataTableName,
  239. _CREATEDATE_,
  240. _EMP_ID_,
  241. _ID_,
  242. _INSTANCE_ID_,
  243. _NUM_ID_,
  244. _RN,
  245. _SONTITLE_,
  246. _SON_TITLE_,
  247. _STATUS_,
  248. _SUMDATA_,
  249. _TITLE_
  250. ];
  251. [db executeUpdate:createTableSqlStr];
  252. }];
  253. }
  254. /**
  255. 插入数据
  256. */
  257. - (void)JOInsetTabledataWithDataArray:(NSArray *)arrDict
  258. {
  259. [[TIFmdbManager shareManager] createOrOpenDatabasaOnCurrentThreadWithDbName:DY_NAME];
  260. [[TIFmdbManager shareManager] executeOnCurrentThreadWithDb:DY_NAME excuteDbBlock:^(FMDatabase *db) {
  261. for (int i=0; i<[arrDict count]; i++)
  262. {
  263. NSDictionary *modelDic =[arrDict objectAtIndex:i];
  264. NSString *sql = [NSString stringWithFormat:@"INSERT INTO %@(%@ ,%@, %@, %@, %@, %@, %@, %@, %@, %@, %@ ) VALUES (?, ?,?,?,?,?,?,?,?,?,?)",orderDataTableName,
  265. _CREATEDATE_,
  266. _EMP_ID_,
  267. _ID_,
  268. _INSTANCE_ID_,
  269. _NUM_ID_,
  270. _RN,
  271. _SONTITLE_,
  272. _SON_TITLE_,
  273. _STATUS_,
  274. _SUMDATA_,
  275. _TITLE_
  276. ];
  277. //INSERT INTO DINGYUEDB(CREATEDATE_, EMP_ID_, ID_, INSTANCE_ID_, NUM_ID_, RN, SONTITLE_, SON_TITLE_, STATUS_, SUMDATA_,TITLE_) VALUES (?,?,?,?,?,?,?,?,?,?)
  278. if (![db executeUpdate:sql,
  279. [modelDic objectForKey:_CREATEDATE_],
  280. [modelDic objectForKey:_EMP_ID_],
  281. [modelDic objectForKey:_ID_],
  282. [modelDic objectForKey:_INSTANCE_ID_],
  283. [modelDic objectForKey:_NUM_ID_],
  284. [modelDic objectForKey:_RN],
  285. [modelDic objectForKey:_SONTITLE_],
  286. [modelDic objectForKey:_SON_TITLE_],
  287. [modelDic objectForKey:_STATUS_],
  288. [modelDic objectForKey:_SUMDATA_],
  289. [modelDic objectForKey:_TITLE_]
  290. ])
  291. {
  292. }
  293. }
  294. }];
  295. }
  296. /**当天没有数据情况下取最新历史数据*/
  297. -(void)getAllDataFromFMDB
  298. {
  299. [[TIFmdbManager shareManager] createOrOpenDatabasaOnCurrentThreadWithDbName:DY_NAME];
  300. // DLog(@"查看地址=%@",fmdb_obj);
  301. NSArray *tempArr =[self selectTableData];
  302. // DLog(@"取出数据库数据=%@",tempArr);
  303. if (tempArr.count==0)
  304. {
  305. //[((AppDelegate*)[[UIApplication sharedApplication] delegate]) showAlertWithNoCompanyName:@"数据库为空"];
  306. //马上进入刷新状态(仅仅是显示刷新状态,并不会触发UIControlEventValueChanged事件)
  307. // [control beginRefreshing];
  308. //马上加载数据
  309. // [self loadNewData:control];
  310. }
  311. else
  312. {
  313. //模型数组转字典数组
  314. NSMutableArray * arrDict=[NSDictionary mj_keyValuesArrayWithObjectArray:tempArr];
  315. //过滤掉null类型
  316. NSArray * dictArr=[NSDictionary changeType:arrDict];
  317. //字典数组转模型数组
  318. if (dictArr != nil) {
  319. tempArr=[JODYModel mj_objectArrayWithKeyValuesArray:dictArr];
  320. }
  321. for (int i=0; i<tempArr.count; i++)
  322. {
  323. [dataArray addObject: tempArr[i]];
  324. //字典转模型
  325. JODYModel * model=[JODYModel objectWithKeyValues:tempArr[i]];
  326. //DLog(@"CREATEDATE=%@ EMP_ID=%@ ID=%ld INSTANCE_ID=%ld NUM_ID_=%@ SON_TITLE=%@ SONTITLE=%@ STATUS_=%ld SUMDATA_=%@ RN=%ld ",model.CREATEDATE_,model.EMP_ID_,(long)model.ID_,(long)model.INSTANCE_ID_,model.NUM_ID_,model.SON_TITLE_,model.SONTITLE_,(long)model.STATUS_,model.SUMDATA_,(long)model.RN);
  327. // DLog(@"_______________________");
  328. }
  329. [self setDataArray:dataArray];
  330. k=-1;
  331. }
  332. }
  333. /**没网状态下取数据库数据*/
  334. - (void)getDataFromFMDBIFNotWANG
  335. {
  336. NSArray *tempArr =[self selectTableData];
  337. for (int i=0; i<tempArr.count; i++)
  338. {
  339. [dataArray addObject: tempArr[i]];
  340. }
  341. [self setDataArray:dataArray];
  342. }
  343. /**
  344. 上拉刷新进行网络请求
  345. */
  346. - (void)loadNewData
  347. {
  348. //1,创建一个网络请求管理对象
  349. UASNetworkManager *manager1 = [UASNetworkManager shareManager];
  350. manager1.responseSerializer=[AFHTTPResponseSerializer serializer];
  351. //2,取出sessionID
  352. NSUserDefaults *userDefault=[NSUserDefaults standardUserDefaults];
  353. NSString *sessionId=[userDefault stringForKey:@"sessionId"];
  354. //DLog(@"sessionId333=%@",sessionId);
  355. NSString * ips=[userDefault objectForKey:@"ipAndPort"];
  356. //3.拼接session
  357. NSString *paramSessionId=[@"" stringByAppendingFormat:@"JSESSIONID=%@",sessionId];
  358. //4.设置cookie
  359. [manager1.requestSerializer setValue:paramSessionId forHTTPHeaderField:@"Cookie"];
  360. NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
  361. NSDateComponents *comps = nil;
  362. comps = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:[NSDate date]];
  363. NSDateComponents *adcomps = [[NSDateComponents alloc] init];
  364. [adcomps setDay:k];
  365. k--;
  366. NSDate *newdate = [calendar dateByAddingComponents:adcomps toDate:[NSDate date] options:0];
  367. //5,取当前日期
  368. NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init];
  369. [dateformatter setDateFormat:@"yyyyMMdd"];
  370. NSString * locationString=[dateformatter stringFromDate:newdate];
  371. //DLog(@"刷新时间接口=%@",locationString);
  372. //6,接口 参数:count取数据上线ERP/common/desktop/subs/getSubs.action
  373. NSString *url=[@"" stringByAppendingFormat:@"%@common/desktop/subs/getSubs.action?count=100&condition=where to_char(createdate_,'yyyymmdd')='%@'",ips,locationString];
  374. // DLog(@"url=%@",url);
  375. //7.二进制数据转换
  376. NSString *urlStringUTF8 = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  377. [manager1 request:urlStringUTF8 method:GET parameters:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
  378. NSData *data=responseObject;
  379. // [control endRefreshing];
  380. //1,系统自带的nsjson解析数据
  381. id rootDic =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
  382. // DLog(@"rootDic=%@",rootDic);
  383. //2,过滤返回null类型
  384. NSDictionary * dict=[NSDictionary changeType:rootDic];
  385. // DLog(@"dict=%@",dict);
  386. NSString * sessionId = [NSString stringWithFormat:@"%@",dict[@"sessionId"]];
  387. if (![sessionId isEqualToString:@"(null)"]) {
  388. [[NSUserDefaults standardUserDefaults] setObject:sessionId forKey:@"sessionId"];
  389. }
  390. //3,数组接受字典
  391. NSMutableArray * tempArr=[[NSMutableArray alloc]init];
  392. tempArr=[dict objectForKey:@"data"];
  393. // DLog(@"tempArr=%@",tempArr);
  394. //4,判断是否有数据
  395. if ([tempArr count]==0)
  396. {
  397. // [self loadNewData];
  398. //[self showNewStatusCount:0];
  399. //第一次进来就刷新
  400. if (k==-1)
  401. {
  402. [self getAllDataFromFMDB];
  403. }
  404. [_tableView.mj_footer endRefreshing];
  405. // return ;
  406. }
  407. else
  408. {
  409. for (int i=0; i<tempArr.count; i++)
  410. {
  411. [dataArray addObject:tempArr[i]];
  412. // JODYModel * model=[JODYModel objectWithKeyValues:dataArray[i]];
  413. //
  414. // DLog(@"CREATEDATE=%@ EMP_ID=%@ ID=%ld INSTANCE_ID=%ld NUM_ID_=%@ SON_TITLE=%@ SONTITLE=%@ STATUS_=%ld SUMDATA_=%@ RN=%ld TITLE=%@ ",model.CREATEDATE_,model.EMP_ID_,(long)model.ID_,(long)model.INSTANCE_ID_,model.NUM_ID_,model.SON_TITLE_,model.SONTITLE_,(long)model.STATUS_,model.SUMDATA_,(long)model.RN,model.TITLE_);
  415. // DLog(@"_______________________");
  416. }
  417. //当第一次刷新(今天)时就存下来
  418. if (k+1==0)
  419. {
  420. //打开数据库
  421. [[TIFmdbManager shareManager] createOrOpenDatabasaOnCurrentThreadWithDbName:DY_NAME];
  422. [[TIFmdbManager shareManager] executeOnCurrentThreadWithDb:DY_NAME excuteDbBlock:^(FMDatabase *db) {
  423. [db executeUpdate:[NSString stringWithFormat:@"delete from %@",orderDataTableName]];
  424. }];
  425. /**创建表*/
  426. [self JOCreateTableOfJODYModel];
  427. //插入数据
  428. [self JOInsetTabledataWithDataArray:tempArr];
  429. }
  430. [self setDataArray:tempArr];
  431. _indexPage = tempArr.count;
  432. // [self showNewStatusCount:_indexPage];
  433. [JOShowMessageFromNavi showDropViewWithMessage:[NSString stringWithFormat:@"%@%ld%@",Localized(@"UU_message_mySubscribe_inTotal"), (long)_indexPage,Localized(@"UU_message_mySubscribe_dataCount")] ToNavi:self.navigationController withColor:nil];
  434. }
  435. // 结束刷新
  436. if (dataArray == nil || dataArray.count == 0) {
  437. _tableView.separatorColor = Color(235, 233, 233, 1.0);
  438. _tableView.hidden = YES;
  439. _noData.hidden = NO;
  440. }else{
  441. _tableView.hidden = NO;
  442. _noData.hidden = YES;
  443. }
  444. // 刷新表格
  445. [_tableView reloadData];
  446. //结束刷新
  447. // [self.refreshFooter endRefreshing];
  448. [_tableView.mj_footer endRefreshing];
  449. } failure:^(NSURLSessionDataTask *task, NSError *error) {
  450. DLog(@"什么错误呀==%@",error);
  451. if (k+1==0)
  452. {
  453. //[self showNewStatusCount:-1];
  454. [JOShowMessageFromNavi showDropViewWithMessage:@"刷新失败,没网络或接口异常" ToNavi:self.navigationController withColor:nil];
  455. [self getDataFromFMDBIFNotWANG];
  456. [_tableView reloadData];
  457. }else{
  458. [JOShowMessageFromNavi showDropViewWithMessage:@"您无订阅内容" ToNavi:self.navigationController withColor:nil];
  459. //[self showNewStatusCount:-2];
  460. }
  461. [_tableView.mj_footer endRefreshing];
  462. }];
  463. }
  464. /**数据源处理*/
  465. - (void)setDataArray:(NSMutableArray *)arr
  466. {
  467. for (int i=0; i<[arr count];i++ )
  468. {
  469. JODYModel *model = nil;
  470. if ([arr[i] isKindOfClass:[JODYModel class]]) {
  471. model = arr[i];
  472. }else{
  473. model=[JODYModel objectWithKeyValues:arr[i]];
  474. }
  475. model.IDTF_=@"不是你呀";
  476. if (i==0)
  477. {
  478. model.IDTF_=@"就是你了";
  479. }
  480. [self.modelData addObject:model];
  481. }
  482. }
  483. ///**下啦刷新提示动画*/
  484. //- (void)showNewStatusCount:(NSInteger)count
  485. //{
  486. // // 1.创建label
  487. // UILabel *label = [[UILabel alloc] init];
  488. // label.backgroundColor =Color(0, 0, 0, 0.5);
  489. // label.width = [UIScreen mainScreen].bounds.size.width;
  490. // label.height = 25;
  491. //
  492. //
  493. // // 2.设置其他属性
  494. // if (count == 0)
  495. // {
  496. // label.text = @"没有新的订阅数据";
  497. // }
  498. // else if(count>0)
  499. // {
  500. // label.text = [NSString stringWithFormat:@"共有%ld条新的订阅数据", (long)count];
  501. // }else if(count==-1)
  502. // {
  503. // label.text=@"刷新失败,没网络或接口异常";
  504. // }else if(count==-2)
  505. // {
  506. // label.text=@"您无订阅内容";
  507. // }
  508. // label.textColor = [UIColor whiteColor];
  509. // label.textAlignment = NSTextAlignmentCenter;
  510. // label.font = [UIFont systemFontOfSize:12];
  511. //
  512. // // 3.添加
  513. // label.y = 64 - label.height;
  514. // // 将label添加到导航控制器的view中,并且是盖在导航栏下边
  515. // [self.navigationController.view insertSubview:label belowSubview:self.navigationController.navigationBar];
  516. //
  517. // // 4.动画
  518. // // 先利用1s的时间,让label往下移动一段距离
  519. // CGFloat duration = 1.0; // 动画的时间
  520. // [UIView animateWithDuration:duration animations:^{
  521. // // label.y += label.height;
  522. // label.transform = CGAffineTransformMakeTranslation(0, label.height);
  523. // } completion:^(BOOL finished) {
  524. // // 延迟1s后,再利用1s的时间,让label往上移动一段距离(回到一开始的状态)
  525. // CGFloat delay = 1.0; // 延迟1s
  526. // // UIViewAnimationOptionCurveLinear:匀速
  527. // [UIView animateWithDuration:duration delay:delay options:UIViewAnimationOptionCurveLinear animations:^{
  528. // // label.y -= label.height;
  529. // label.transform = CGAffineTransformIdentity;
  530. // } completion:^(BOOL finished) {
  531. // [label removeFromSuperview];
  532. // }];
  533. // }];
  534. //
  535. // // 如果某个动画执行完毕后,又要回到动画执行前的状态,建议使用transform来做动画
  536. //}
  537. #pragma mark - 数据展示
  538. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  539. return 1;
  540. }
  541. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  542. return [self.modelData count];
  543. }
  544. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  545. {
  546. //不要分割线
  547. tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  548. JODYCell *cell=[JODYCell cellWithTableView:tableView];
  549. cell.dyModel=self.modelData[indexPath.row];
  550. return cell;
  551. }
  552. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
  553. {
  554. JODYModel * model=[[JODYModel alloc]init];
  555. model=self.modelData[indexPath.row];
  556. if ([model.IDTF_ isEqualToString:@"就是你了"])
  557. {
  558. return 145;
  559. }else{
  560. return 60;
  561. }
  562. }
  563. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  564. {
  565. JODYWebViewController *webView=[[JODYWebViewController alloc]init];
  566. JODYModel * model=[[JODYModel alloc]init];
  567. model=self.modelData[indexPath.row];
  568. webView.dataArr = [NSMutableArray arrayWithArray:_modelData];
  569. webView.pagesize = indexPath.row;
  570. model.STATUS_=@"999";
  571. [webView setBlcok:^(NSString *str, NSArray *arr) {
  572. for (int i = 0; i < arr.count; i ++) {
  573. JODYModel *model = self.modelData[[arr[i] integerValue]];
  574. model.STATUS_ = str;
  575. }
  576. [_tableView reloadData];
  577. }];
  578. webView.dyModel=self.modelData[indexPath.row];
  579. [self.navigationController pushViewController:webView animated:YES];
  580. }
  581. - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
  582. {
  583. if (editingStyle == UITableViewCellEditingStyleDelete) {
  584. [self.modelData removeObjectAtIndex:indexPath.row];
  585. [_tableView reloadData];
  586. } else if (editingStyle == UITableViewCellEditingStyleInsert) {
  587. }
  588. }
  589. #pragma mark -- 以下为固定不需要修改的代码
  590. - (void)viewWillAppear:(BOOL)animated
  591. {
  592. [[NSNotificationCenter defaultCenter] postNotificationName:@"hiddenTabBar"object:nil];
  593. // [self.modelData removeAllObjects];
  594. // [_tableView reloadData];
  595. // k=1;
  596. // [self loadNewData];
  597. // [self loadNewData];
  598. }
  599. - (void)viewWillDisappear:(BOOL)animated
  600. {
  601. [JOShowMessageFromNavi hideDropView];
  602. }
  603. /**
  604. * 新手指引
  605. */
  606. - (void)newUserGuide
  607. {
  608. // 这里创建指引在这个视图在window上
  609. CGRect frame = [UIScreen mainScreen].bounds;
  610. UIView * bgView = [[UIView alloc]initWithFrame:frame];
  611. bgView.backgroundColor = Color(0,0,0,0.5);
  612. UITapGestureRecognizer * tap =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(sureTapClick:)];
  613. [bgView addGestureRecognizer:tap];
  614. [[UIApplication sharedApplication].keyWindow addSubview:bgView];
  615. //create path 重点来了(**这里需要添加第一个路径)
  616. UIBezierPath *path = [UIBezierPath bezierPathWithRect:frame];
  617. // 这里添加第二个路径 (这个是圆)
  618. //[path appendPath:[UIBezierPath bezierPathWithArcCenter:CGPointMake(frame.size.width - 40, 92) radius:30 startAngle:0 endAngle:2*M_PI clockwise:NO]];
  619. // 这里添加第二个路径 (这个是矩形)
  620. [path appendPath:[[UIBezierPath bezierPathWithRoundedRect:CGRectMake(frame.size.width/4*3-1, 20, frame.size.width/4.0+1, 40) cornerRadius:5] bezierPathByReversingPath]];
  621. CAShapeLayer *shapeLayer = [CAShapeLayer layer];
  622. shapeLayer.path = path.CGPath;
  623. //shapeLayer.strokeColor = [UIColor blueColor].CGColor;
  624. [bgView.layer setMask:shapeLayer];
  625. UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(frame.size.width -40,64,50,50)];
  626. imageView.image = [UIImage imageNamed:@"OA_NewGuide"];
  627. [bgView addSubview:imageView];
  628. }
  629. /**
  630. * 新手指引确定
  631. */
  632. - (void)sureTapClick:(UITapGestureRecognizer *)tap
  633. {
  634. UIView * view = tap.view;
  635. [view removeFromSuperview];
  636. [view removeAllSubviews];
  637. [view removeGestureRecognizer:tap];
  638. }
  639. -(void)dealloc{
  640. }
  641. @end