Commit 04ee37bb04f11b58e3eb43ac686365aea1880859
1 parent
ae36c1b9
no message
Showing
9 changed files
with
100 additions
and
29 deletions
CNLiveMineModule.podspec
| @@ -83,6 +83,12 @@ TODO: 网家家-我的模块. | @@ -83,6 +83,12 @@ TODO: 网家家-我的模块. | ||
| 83 | # 基类 | 83 | # 基类 |
| 84 | s.dependency 'CNLiveCommonClass' | 84 | s.dependency 'CNLiveCommonClass' |
| 85 | 85 | ||
| 86 | + # IM | ||
| 87 | + s.dependency 'CNLiveIMBaseSDK' | ||
| 88 | + | ||
| 89 | + # 类别 | ||
| 90 | + s.dependency 'CNLiveCategory' | ||
| 91 | + | ||
| 86 | # 用户信息本地化 | 92 | # 用户信息本地化 |
| 87 | s.dependency 'CNLiveUserManagement' | 93 | s.dependency 'CNLiveUserManagement' |
| 88 | 94 | ||
| @@ -98,11 +104,8 @@ TODO: 网家家-我的模块. | @@ -98,11 +104,8 @@ TODO: 网家家-我的模块. | ||
| 98 | # 设置模块 | 104 | # 设置模块 |
| 99 | s.dependency 'CNLiveSettingModule' | 105 | s.dependency 'CNLiveSettingModule' |
| 100 | 106 | ||
| 101 | - #IM | ||
| 102 | - s.dependency 'CNLiveIMBaseSDK' | ||
| 103 | - | ||
| 104 | - #类别 | ||
| 105 | - s.dependency 'CNLiveCategory' | 107 | + # 我的收藏模块 |
| 108 | + s.dependency 'CNLiveCollectionModule' | ||
| 106 | 109 | ||
| 107 | s.static_framework = true | 110 | s.static_framework = true |
| 108 | 111 |
CNLiveMineModule/Classes/Controller/CNLiveMineController.m
| @@ -22,6 +22,7 @@ | @@ -22,6 +22,7 @@ | ||
| 22 | #import "CNLiveMineCell.h" | 22 | #import "CNLiveMineCell.h" |
| 23 | #import "CNLiveMineModel.h" | 23 | #import "CNLiveMineModel.h" |
| 24 | #import "CNLiveUserInfoController.h" | 24 | #import "CNLiveUserInfoController.h" |
| 25 | +#import "CNLiveMineRequest.h" | ||
| 25 | 26 | ||
| 26 | @interface CNLiveMineController()<UITableViewDelegate, UITableViewDataSource, CNLiveMineHeaderViewDelegate, CNLiveMineCellDelegate> | 27 | @interface CNLiveMineController()<UITableViewDelegate, UITableViewDataSource, CNLiveMineHeaderViewDelegate, CNLiveMineCellDelegate> |
| 27 | @property (nonatomic, strong) UITableView *tableView; | 28 | @property (nonatomic, strong) UITableView *tableView; |
| @@ -60,7 +61,8 @@ static const CGFloat timeValue = 1.5; | @@ -60,7 +61,8 @@ static const CGFloat timeValue = 1.5; | ||
| 60 | @"image":@"mine_refund" | 61 | @"image":@"mine_refund" |
| 61 | } | 62 | } |
| 62 | ] | 63 | ] |
| 63 | - }, | 64 | + |
| 65 | + }, | ||
| 64 | @{ | 66 | @{ |
| 65 | @"name":@"常用工具", | 67 | @"name":@"常用工具", |
| 66 | @"style":@"2", | 68 | @"style":@"2", |
| @@ -94,7 +96,8 @@ static const CGFloat timeValue = 1.5; | @@ -94,7 +96,8 @@ static const CGFloat timeValue = 1.5; | ||
| 94 | @"image":@"mine_tool_map" | 96 | @"image":@"mine_tool_map" |
| 95 | } | 97 | } |
| 96 | ] | 98 | ] |
| 97 | - }, | 99 | + |
| 100 | + }, | ||
| 98 | @{ | 101 | @{ |
| 99 | @"name":@"购买的商品", | 102 | @"name":@"购买的商品", |
| 100 | @"pic":@"mine_buy_commodity", | 103 | @"pic":@"mine_buy_commodity", |
| @@ -105,7 +108,8 @@ static const CGFloat timeValue = 1.5; | @@ -105,7 +108,8 @@ static const CGFloat timeValue = 1.5; | ||
| 105 | @"image":@"mine_e-ticket" | 108 | @"image":@"mine_e-ticket" |
| 106 | } | 109 | } |
| 107 | ] | 110 | ] |
| 108 | - }, | 111 | + |
| 112 | + }, | ||
| 109 | @{ | 113 | @{ |
| 110 | @"name":@"大众体育", | 114 | @"name":@"大众体育", |
| 111 | @"pic":@"mine_china_sport", | 115 | @"pic":@"mine_china_sport", |
| @@ -119,11 +123,12 @@ static const CGFloat timeValue = 1.5; | @@ -119,11 +123,12 @@ static const CGFloat timeValue = 1.5; | ||
| 119 | @"image":@"mine_record" | 123 | @"image":@"mine_record" |
| 120 | } | 124 | } |
| 121 | ] | 125 | ] |
| 122 | - } | 126 | + |
| 127 | + } | ||
| 123 | ]; | 128 | ]; |
| 124 | for(NSDictionary *dic in data){ | 129 | for(NSDictionary *dic in data){ |
| 125 | CNLiveMineModel *model = [CNLiveMineModel mj_objectWithKeyValues:dic]; | 130 | CNLiveMineModel *model = [CNLiveMineModel mj_objectWithKeyValues:dic]; |
| 126 | -// [model editModel:NO]; | 131 | + [model editModel:NO]; |
| 127 | [self.data addObject:model]; | 132 | [self.data addObject:model]; |
| 128 | } | 133 | } |
| 129 | [self.tableView reloadData]; | 134 | [self.tableView reloadData]; |
| @@ -223,35 +228,27 @@ static const CGFloat timeValue = 1.5; | @@ -223,35 +228,27 @@ static const CGFloat timeValue = 1.5; | ||
| 223 | } | 228 | } |
| 224 | } | 229 | } |
| 225 | 230 | ||
| 231 | +// 请求签到赚积分 | ||
| 226 | - (void)requestSignIn{ | 232 | - (void)requestSignIn{ |
| 227 | - NSDictionary *params = @{@"sid":CNUserShareModel.uid}; | ||
| 228 | - [CNLiveNetworking setAllowRequestDefaultArgument:YES]; | ||
| 229 | - [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNIntegralSignInUrl Param:params CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) { | ||
| 230 | - | 233 | + [CNLiveMineRequest signIn:^(BOOL isSuccess, NSDictionary * _Nonnull data, NSError * _Nonnull error) { |
| 231 | if (error.code == -1001 || error.code == -1009) { | 234 | if (error.code == -1001 || error.code == -1009) { |
| 232 | [QMUITips showError:@"网络连接已断开" inView:self.view hideAfterDelay:timeValue]; | 235 | [QMUITips showError:@"网络连接已断开" inView:self.view hideAfterDelay:timeValue]; |
| 233 | return ; | 236 | return ; |
| 234 | } | 237 | } |
| 235 | - if (!error) { | ||
| 236 | - if(responseObject[@"data"] && [responseObject[@"data"] isKindOfClass:[NSDictionary class]]){ | ||
| 237 | - id<CNLiveIntegralServiceProtocol> service = [[BeeHive shareInstance] createService:@protocol(CNLiveIntegralServiceProtocol)]; | ||
| 238 | - NSDictionary *dic = responseObject[@"data"]; | ||
| 239 | - NSInteger status = [dic[@"status"] integerValue]; | ||
| 240 | - if (status == 1) { | ||
| 241 | - [service showGoldWhereaboutsViewWithDic:dic]; | ||
| 242 | - | ||
| 243 | - }else{ | ||
| 244 | - [service showSignInViewWithDic:dic]; | ||
| 245 | - } | ||
| 246 | - | 238 | + if (isSuccess) { |
| 239 | + id<CNLiveIntegralServiceProtocol> service = [[BeeHive shareInstance] createService:@protocol(CNLiveIntegralServiceProtocol)]; | ||
| 240 | + NSInteger status = [data[@"status"] integerValue]; | ||
| 241 | + if (status == 1) { | ||
| 242 | + [service showGoldWhereaboutsViewWithDic:data]; | ||
| 243 | + }else{ | ||
| 244 | + [service showSignInViewWithDic:data]; | ||
| 247 | } | 245 | } |
| 248 | 246 | ||
| 249 | }else{ | 247 | }else{ |
| 250 | [QMUITips showError:@"签到失败" inView:self.view hideAfterDelay:timeValue]; | 248 | [QMUITips showError:@"签到失败" inView:self.view hideAfterDelay:timeValue]; |
| 251 | - return ; | ||
| 252 | 249 | ||
| 253 | } | 250 | } |
| 254 | - | 251 | + self.headerView.interactionEnabled = YES; |
| 255 | }]; | 252 | }]; |
| 256 | } | 253 | } |
| 257 | 254 |
CNLiveMineModule/Classes/Model/CNLiveMineModel.h
| @@ -36,6 +36,7 @@ typedef NS_ENUM(NSInteger, CNLiveMineCellType) { | @@ -36,6 +36,7 @@ typedef NS_ENUM(NSInteger, CNLiveMineCellType) { | ||
| 36 | @property (nonatomic, assign) CGFloat height; | 36 | @property (nonatomic, assign) CGFloat height; |
| 37 | @property (nonatomic, assign) CGFloat margin; | 37 | @property (nonatomic, assign) CGFloat margin; |
| 38 | 38 | ||
| 39 | +// 是否显示路径工具 | ||
| 39 | - (void)editModel:(BOOL)showMapTool; | 40 | - (void)editModel:(BOOL)showMapTool; |
| 40 | 41 | ||
| 41 | @end | 42 | @end |
CNLiveMineModule/Classes/Model/CNLiveMineRequest.h
0 → 100644
| 1 | +// | ||
| 2 | +// CNLiveMineRequest.h | ||
| 3 | +// CNLiveMineModule | ||
| 4 | +// | ||
| 5 | +// Created by 153993236@qq.com on 11/12/2019. | ||
| 6 | +// Copyright © 2019 153993236@qq.com. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +#import <Foundation/Foundation.h> | ||
| 10 | + | ||
| 11 | +NS_ASSUME_NONNULL_BEGIN | ||
| 12 | +typedef void(^CancelCollectionBlock)(BOOL isSuccess, NSDictionary *data, NSError *error); | ||
| 13 | + | ||
| 14 | +@interface CNLiveMineRequest : NSObject | ||
| 15 | + | ||
| 16 | ++ (void)signIn:(CancelCollectionBlock)block; | ||
| 17 | + | ||
| 18 | +@end | ||
| 19 | + | ||
| 20 | +NS_ASSUME_NONNULL_END |
CNLiveMineModule/Classes/Model/CNLiveMineRequest.m
0 → 100644
| 1 | +// | ||
| 2 | +// CNLiveMineRequest.m | ||
| 3 | +// CNLiveMineModule | ||
| 4 | +// | ||
| 5 | +// Created by 153993236@qq.com on 11/12/2019. | ||
| 6 | +// Copyright © 2019 153993236@qq.com. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +#import "CNLiveMineRequest.h" | ||
| 10 | +#import "CNLiveCategory.h" | ||
| 11 | +#import "CNLiveNetworking.h" | ||
| 12 | +#import "CNLiveEnvironment.h" | ||
| 13 | +#import "CNUserInfoManager.h" | ||
| 14 | + | ||
| 15 | +#import "CNLiveCollectionModel.h" | ||
| 16 | + | ||
| 17 | +@implementation CNLiveMineRequest | ||
| 18 | + | ||
| 19 | ++ (void)signIn:(CancelCollectionBlock)block { | ||
| 20 | + NSDictionary *params = @{@"sid":CNUserShareModel.uid}; | ||
| 21 | + [CNLiveNetworking setAllowRequestDefaultArgument:YES]; | ||
| 22 | + [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNIntegralSignInUrl Param:params CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) { | ||
| 23 | + if (responseObject && [responseObject isKindOfClass:[NSDictionary class]] && responseObject[@"data"] && [responseObject[@"data"] isKindOfClass:[NSDictionary class]]) { | ||
| 24 | + NSString *errorCode = [NSString stringWithFormat:@"%@", responseObject[@"errorCode"]]; | ||
| 25 | + NSDictionary *data = responseObject[@"data"]; | ||
| 26 | + block?block([errorCode isEqualToString:@"0"], data, error):@""; | ||
| 27 | + }else{ | ||
| 28 | + block?block(NO, @{}, error):@""; | ||
| 29 | + | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + }]; | ||
| 33 | +} | ||
| 34 | + | ||
| 35 | + | ||
| 36 | +@end |
CNLiveMineModule/Classes/View/CNLiveMineHeaderView.h
| @@ -25,6 +25,8 @@ typedef NS_ENUM(NSInteger, CNLiveMineHeaderViewType) { | @@ -25,6 +25,8 @@ typedef NS_ENUM(NSInteger, CNLiveMineHeaderViewType) { | ||
| 25 | @end | 25 | @end |
| 26 | @interface CNLiveMineHeaderView : UIView | 26 | @interface CNLiveMineHeaderView : UIView |
| 27 | @property (nonatomic, weak) id<CNLiveMineHeaderViewDelegate> delegate; | 27 | @property (nonatomic, weak) id<CNLiveMineHeaderViewDelegate> delegate; |
| 28 | +@property (nonatomic, assign) BOOL interactionEnabled; | ||
| 29 | + | ||
| 28 | - (void)layoutSubviews; | 30 | - (void)layoutSubviews; |
| 29 | 31 | ||
| 30 | @end | 32 | @end |
CNLiveMineModule/Classes/View/CNLiveMineHeaderView.m
| @@ -298,14 +298,24 @@ static const NSInteger margin = 20; | @@ -298,14 +298,24 @@ static const NSInteger margin = 20; | ||
| 298 | } | 298 | } |
| 299 | 299 | ||
| 300 | } | 300 | } |
| 301 | + | ||
| 302 | +- (void)setInteractionEnabled:(BOOL)interactionEnabled{ | ||
| 303 | + _interactionEnabled = interactionEnabled; | ||
| 304 | + _sign.userInteractionEnabled = interactionEnabled; | ||
| 305 | + _witness.userInteractionEnabled = interactionEnabled; | ||
| 306 | + | ||
| 307 | +} | ||
| 308 | + | ||
| 301 | - (void)signDidClicked:(UIButton *)btn{ | 309 | - (void)signDidClicked:(UIButton *)btn{ |
| 302 | if (self.delegate && [self.delegate respondsToSelector:@selector(headerView:pushToController:)]) { | 310 | if (self.delegate && [self.delegate respondsToSelector:@selector(headerView:pushToController:)]) { |
| 311 | + btn.userInteractionEnabled = NO; | ||
| 303 | [self.delegate headerView:self pushToController:CNLiveMineHeaderViewTypeSign]; | 312 | [self.delegate headerView:self pushToController:CNLiveMineHeaderViewTypeSign]; |
| 304 | } | 313 | } |
| 305 | } | 314 | } |
| 306 | 315 | ||
| 307 | - (void)witnessDidClicked:(UIButton *)btn{ | 316 | - (void)witnessDidClicked:(UIButton *)btn{ |
| 308 | if (self.delegate && [self.delegate respondsToSelector:@selector(headerView:pushToController:)]) { | 317 | if (self.delegate && [self.delegate respondsToSelector:@selector(headerView:pushToController:)]) { |
| 318 | + btn.userInteractionEnabled = NO; | ||
| 309 | [self.delegate headerView:self pushToController:CNLiveMineHeaderViewTypeWintess]; | 319 | [self.delegate headerView:self pushToController:CNLiveMineHeaderViewTypeWintess]; |
| 310 | } | 320 | } |
| 311 | } | 321 | } |
Example/CNLiveMineModule.xcodeproj/project.pbxproj
| @@ -345,6 +345,7 @@ | @@ -345,6 +345,7 @@ | ||
| 345 | "${BUILT_PRODUCTS_DIR}/CNLiveCacheManagerKit/CNLiveCacheManagerKit.framework", | 345 | "${BUILT_PRODUCTS_DIR}/CNLiveCacheManagerKit/CNLiveCacheManagerKit.framework", |
| 346 | "${BUILT_PRODUCTS_DIR}/CNLiveCategory/CNLiveCategory.framework", | 346 | "${BUILT_PRODUCTS_DIR}/CNLiveCategory/CNLiveCategory.framework", |
| 347 | "${BUILT_PRODUCTS_DIR}/CNLiveChooseCountry/CNLiveChooseCountry.framework", | 347 | "${BUILT_PRODUCTS_DIR}/CNLiveChooseCountry/CNLiveChooseCountry.framework", |
| 348 | + "${BUILT_PRODUCTS_DIR}/CNLiveCollectionModule/CNLiveCollectionModule.framework", | ||
| 348 | "${BUILT_PRODUCTS_DIR}/CNLiveCommonCategory/CNLiveCommonCategory.framework", | 349 | "${BUILT_PRODUCTS_DIR}/CNLiveCommonCategory/CNLiveCommonCategory.framework", |
| 349 | "${BUILT_PRODUCTS_DIR}/CNLiveCommonClass/CNLiveCommonClass.framework", | 350 | "${BUILT_PRODUCTS_DIR}/CNLiveCommonClass/CNLiveCommonClass.framework", |
| 350 | "${BUILT_PRODUCTS_DIR}/CNLiveCustomUI/CNLiveCustomUI.framework", | 351 | "${BUILT_PRODUCTS_DIR}/CNLiveCustomUI/CNLiveCustomUI.framework", |
| @@ -392,6 +393,7 @@ | @@ -392,6 +393,7 @@ | ||
| 392 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCacheManagerKit.framework", | 393 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCacheManagerKit.framework", |
| 393 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCategory.framework", | 394 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCategory.framework", |
| 394 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveChooseCountry.framework", | 395 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveChooseCountry.framework", |
| 396 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCollectionModule.framework", | ||
| 395 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonCategory.framework", | 397 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonCategory.framework", |
| 396 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonClass.framework", | 398 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonClass.framework", |
| 397 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCustomUI.framework", | 399 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCustomUI.framework", |
Example/CNLiveMineModule/CNLIVEAppDelegate.m
| @@ -19,7 +19,7 @@ | @@ -19,7 +19,7 @@ | ||
| 19 | { | 19 | { |
| 20 | // Override point for customization after application launch. | 20 | // Override point for customization after application launch. |
| 21 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; | 21 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; |
| 22 | - [CNLiveEnvironmentManager setEnvironment:CNLiveProductionAppStore]; | 22 | + [CNLiveEnvironmentManager setEnvironment:CNLiveDebugAppStore]; |
| 23 | [CNLiveUserSystemCenter setAppId:AppId appKey:APPKey appSecret:AppSecret isTestEnvironment:TestEnvironment]; | 23 | [CNLiveUserSystemCenter setAppId:AppId appKey:APPKey appSecret:AppSecret isTestEnvironment:TestEnvironment]; |
| 24 | if ([CNUserShareManager isLogin]) { | 24 | if ([CNUserShareManager isLogin]) { |
| 25 | [CNLiveUserSystemCenter setUserId:CNUserShareModel.uid]; | 25 | [CNLiveUserSystemCenter setUserId:CNUserShareModel.uid]; |