// // RAOfflineHandler.h // Apex And Drivers // // Created by Jack on 2018/10/22. // Copyright © 2018年 USAI. All rights reserved. // #import NS_ASSUME_NONNULL_BEGIN @class RAEditImageBaseModel; @interface RAOfflineHandler : NSObject /** * @brief 使用OfflineHandler,通过此方法获取 */ + (instancetype)defaultHandler; /** * @brief 向服务器请求离线数据 */ - (void)downloadOfflineData; #pragma mark - Get /** * @brief 加载离线首页数据 */ - (NSDictionary *)requestOfflineHome; /** * @brief 加载离线Detail * @param orderId 订单号 * @param type 订单类型,包括 new order 和 processing order * @return order detail界面数据 */ - (NSDictionary *)requestOfflineDetailForOrder:(NSString *)orderId withOrderType:(NSInteger)type; /** * @brief 在detail中过滤订单已经做过的操作 * @param detail order detail界面数据 * @param finish order最后完成的一个action索引 * @return 最后过滤后的detail */ - (NSMutableDictionary *)filtrateActionFromDetail:(NSMutableDictionary *)detail withFinishActions:(NSNumber *)finish; /** * @brief 记载离线Edit Order * @param orderId 订单号 * @param actionIndex 操作索引 */ - (NSDictionary *)requestOfflineEditOrder:(NSString *)orderId withAction:(NSInteger)actionIndex; /** * @brief 最后一次修改Order的 Action 索引 * @param orderId 订单号 * @return 最后一次修改order的action索引 */ - (NSNumber *)lastActionIndexForOrder:(NSString *)orderId; #pragma mark - Update /** * @brief 离线提交Detail Remote Action * @param orderId 订单号 * @param type 订单类型 RAOrderStatus, New Order / Processing Order * @param action 操作类型 RADetailActionSubType, Reject / Accept * @param actionIdx 操作索引 * @param actionName 操作名称 * @param url 操作提交目标地址 * @param params 操作提交的参数 * @return 成功/失败 */ - (NSDictionary *)reportOrder:(NSString *)orderId type:(NSInteger)type actionType:(NSInteger)action actionIndex:(NSInteger)actionIdx actionName:(NSString *)actionName withURL:(NSString *)url params:(NSDictionary *)params; /** * @brief 离线提交订单 * @param orderId 订单号 * @param actionId 操作ID,RADetailActionSubType * @param title 操作名称 * @param idx 操作索引 * @param params 订单填写的信息 * @param photos 待上传的图片模型数组 * @param dir 待上传的图片存储目录 */ - (NSDictionary *)updateOrder:(NSString *)orderId action:(NSInteger)actionId title:(NSString *)title index:(NSInteger)idx withParams:(NSDictionary *)params photos:(NSArray *)photos cacheDir:(NSString *)dir; /** * @brief 更新order最后一次操作标记 * @param actionIdx 操作索引 * @param orderId 订单号 */ - (void)updateLastAction:(NSInteger)actionIdx forOrder:(NSString *)orderId; @end NS_ASSUME_NONNULL_END