项目管理

更新时间:2024-03-26 10:01:39下载pdf

项目管理包括以下 API:

  • 获取项目配置、获取项目列表和创建项目功能由 ThingLightingProjectManager 类提供。
  • 创建户外项目需要行政区信息,其由 ThingLightingRegionManager 类提供。
  • 获取项目信息、更新项目信息和删除项目功能由 ThingLightingProject 类提供。
  • 项目相关信息由 ThingLightingProjectModel 类提供。

概念介绍

项目

项目为挂载在某一账号下的可独立操作的 单元,区域和设备等必须要挂载在某一项目下才可进行操作。

一个账号下可以有不定数量的项目,不同套餐的账号可配置不同数量的项目。新用户在注册登录后默认是没有项目的,需进行项目的创建流程后才可进行项目维度的相关操作。

Mesh 网络模式

Mesh 网络模式:指当前创建的项目使用的蓝牙 Mesh 网络的类型。目前,共有以下两种类型:

  • 单 Mesh 网络模式:当项目内设备数量在 300 台以内,或者项目内使用的是非蓝牙 Mesh 类型的设备时,建议选择该模式。例如,户外项目或是蓝牙 Mesh 设备数少于 300 台的室内项目版本。
  • 多 Mesh 网络模式:当项目内设备使用到蓝牙 Mesh 设备且设备数超过 300 台,或项目版本为停车场项目时,建议采用该模式。例如,停车场项目版本或是蓝牙 Mesh 设备数多于 300 台的室内项目版本。

项目版本

  • 室内项目:在建筑平面图上,对设备进行可视化管理。推荐简单的使用场景,项目地址可以简单用文案描述。适用于办公楼,商场等项目。Mesh 网络模式支持单 Mesh 网络模式和多 Mesh 网络模式
  • 户外项目:通过 GIS 地图精准定位设备,推荐区域较大,设备分散的使用场景,项目地址为国家和一级行政区作为划分。项目下级区域通过在地图上标记点位的形式展示。当前项目版本仅为高级版品牌商开通的账号才有创建权限。适用于户外路灯,充电桩等项目。Mesh 网络模式为单 Mesh 网络模式
  • 停车场项目:该版本的项目版本适用于停车场场景,Mesh 网络模式为多 Mesh 网络模式

注意事项

  • 单 Mesh 网络模式的项目创建完成后,会自动生成 Mesh 并关联到整个项目下的所有区域。
  • 多 Mesh 网络模式的项目创建完成后,项目以及空间不会默认绑定 Mesh,需用户手动创建 Mesh 并绑定到项目下的区域内。 绑定完成后,才可进行蓝牙 Mesh 协议的设备配网操作。

配置项目

获取 室内/户外/停车场 项目版本下数据配置。
根据当前登录账号所购买的套餐等级,动态下发当前账号所支持创建的项目的配置信息,例如室内项目、户外项目和停车场项目。您可以创建当前接口所返回类型的项目,创建未授权类型的项目时会报错。

获取批量项目配置

接口说明

    - (void)getProjectConfigListWithSuccess:(void(^)(NSArray<ThingLightingProjectConfigModel *> *configList))success
                                    failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
success 成功回调
failure 失败回调

示例代码

Objective-C:

    [[ThingLightingProjectManager new] getProjectConfigListWithSuccess:^(NSArray <ThingLightingProjectConfigModel *> *configList) {
        NSLog(@"get success");
    } failure:^(NSError *error) {
        NSLog(@"get failure: %@", error);
    }];

获取项目列表

接口说明

    - (void)getProjectListWithSuccess:(nullable void(^)(NSArray <ThingLightingProjectModel *> *projectList))success
                              failure:(nullable void(^)(NSError *error))failure;

参数说明

参数 说明
success 成功回调
failure 失败回调

示例代码

Objective-C:

    [[ThingLightingProjectManager new] getProjectListWithSuccess:^(NSArray <ThingLightingProjectModel *> *projectList) {
        NSLog(@"get success");
    } failure:^(NSError *error) {
        NSLog(@"get failure: %@", error);
    }];

ThingLightingProjectConfigModel

参数 说明
projectType 项目类型
  • 0:室内项目
  • 1:户外项目
  • 2:停车场项目
projectTypeName 项目类型名称
projectIconUrl 项目图标 URL
spaceAttributes 空间层级属性,ThingLightingProjectSpaceItemModel 数组
validationConditions 有效输入范围限制,ThingLightingProjectValidationItemModel 数组

ThingLightingProjectSpaceItemModel

参数 说明
name 空间层级名称
iconUrl 空间层级图标 URL
roomLevel 空间层级

ThingLightingProjectValidationItemModel

参数 说明
min 有效范围最小值
max 有效范围最大值

创建项目

接口说明

- (void)createProjectWithProjectType:(ThingLightingProjectType)projectType
                         networkType:(ThingLightingProjectMeshMode)networkType
                         projectName:(nonnull NSString *)projectName
                          leaderName:(nonnull NSString *)leaderName
                        leaderMobile:(nonnull NSString *)leaderMobile
                       detailAddress:(nonnull NSString *)detailAddress
                    regionLocationId:(nullable NSString *)regionLocationId
                             success:(nullable void(^)(id result))success
                             failure:(nullable void(^)(NSError *error))failure;

参数说明

参数 说明
projectType 当前项目版本:
  • 0:室内项目
  • 1:户外项目
  • 2:停车场项目
可从获取 项目配置信息 方法获取,必填
networkType Mesh 网络模式:
  • 0:单 Mesh 模式,默认值
  • 1:多 Mesh 模式
参考 概念介绍
projectName 项目名称,必填
leaderName 项目负责人姓名,必填
leaderMobile 项目负责人电话号码,必填
detailAddress 详细地址
室内项目版本和停车场项目版本 必传,用于描述详细地址
户外项目版本 必传,用于描述户外项目位置,建议选中区域拼接
例如:中国浙江省,美国加利福尼亚州等
regionLocationId 项目行政区 ID,由国家码和一级行政区码组合,以 , 拼接,区码通过 ThingLightingRegionManager 获取,可选
success 成功回调
failure 失败回调

示例代码

Objective-C:

    [[ThingLightingProjectManager new] createProjectWithProjectType:ThingLightingProjectTypeIndoor
                                                        networkType:self.meshMode
                                                       projectName:self.projectNameTextField.text
                                                        leaderName:self.leaderNameTextField.text
                                                      leaderMobile:self.leaderMobileTextField.text
                                                     detailAddress:self.detailAddressTextField.text
                                                  regionLocationId:@""
                                                           success:^(id _Nonnull result) {
    } failure:NULL];

获取项目信息

接口说明

    - (void)getProjectInfoWithSuccess:(nullable void(^)(id result))success
                              failure:(nullable void(^)(NSError *error))failure;

参数说明

参数 说明
success 成功回调
failure 失败回调

示例代码

Objective-C:

    ThingLightingProject *project = [ThingLightingProject projectWithProjectId:123];
    [project getProjectInfoWithSuccess:^(id result) {
        NSLog(@"get success");
    } failure:^(NSError *error) {
         NSLog(@"get failure: %@", error);
    }];

获取项目详情

项目详情包括 Mesh 列表、项目信息、收藏区域、网关列表和区域列表。

接口说明

    - (void)getProjectDetailWithSuccess:(nullable void(^)(void))success
                                failure:(nullable void(^)(NSError *error))failure;

参数说明

参数 说明
success 成功回调
failure 失败回调

示例代码

Objective-C:

    ThingLightingProject *project = [ThingLightingProject projectWithProjectId:123];
    [project getProjectDetailWithSuccess:^(void) {
        NSLog(@"get success");
    } failure:^(NSError *error) {
         NSLog(@"get failure: %@", error);
    }];

更新项目信息

接口说明

    - (void)updateProjectInfoWithProjectName:(nonnull NSString *)projectName
                                  leaderName:(nonnull NSString *)leaderName
                                leaderMobile:(nonnull NSString *)leaderMobile
                               detailAddress:(nonnull NSString *)detailAddress
                            regionLocationId:(nullable NSString *)regionLocationId
                                     success:(nullable void(^)(id result))success
                                     failure:(nullable void(^)(NSError *error))failure;

参数说明

参数 说明
projectName 项目名称,必填
leaderName 项目负责人姓名,必填
leaderMobile 项目负责人电话,必填
detailAddress 详细地址
室内项目版本和停车场项目版本 必传,用于描述详细地址
户外项目版本 必传,用于描述户外项目位置,建议选中区域拼接
例如:中国浙江省,美国加利福尼亚州等
regionLocationId 项目行政区 ID,由国家码和一级行政区码组合,以 , 拼接,区码通过 ThingLightingRegionManager 获取,可选
success 成功回调
failure 失败回调

示例代码

Objective-C:

    ThingLightingProject *project = [ThingLightingProject projectWithProjectId:123];
    [project updateProjectInfoWithProjectName:@"your projectName"
                                   leaderName:@"your leaderName"
                                 leaderMobile:@"your leaderMobile"
                                detailAddress:@"your detailAddress"
                             regionLocationId:nil
                                      success:^(id result) {
                                        NSLog(@"update success");
                                    } failure:^(NSError *error) {
                                        NSLog(@"update failure: %@", error);
                                    }];

删除项目

接口说明

    - (void)deleteProjectWithPassword:(nonnull NSString *)password
                              success:(nullable void(^)(void))success
                              failure:(nullable void(^)(NSError *error))failure;

参数说明

参数 说明
password 密码,必填
success 成功回调
failure 失败回调

示例代码

Objective-C:

    ThingLightingProject *project = [ThingLightingProject projectWithProjectId:123];
    [project deleteProjectWithPassword:@"your password"
                               success:^{
                                 NSLog(@"delete success");
                             } failure:^(NSError *error) {
                                 NSLog(@"delete failure: %@", error);
                             }];

获取国家行政区列表

接口说明

- (void)getRegionListWithSuccess:(void(^)(NSArray<ThingLightingRegionModel *> *regionList))success
                         failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
success 成功回调
failure 失败回调

示例代码

Objective-C:

    ThingLightingRegionManager *project = [ThingLightingRegionManager new];
    [project getRegionListWithSuccess:^(NSArray * _Nonnull regionList) {
        NSLog(@"get success");
    } failure:^(NSError * _Nonnull error) {
        NSLog(@"get failure: %@", error);
    }];

对象说明

ThingLightingRegionModel

参数 说明
locationId 行政区 ID
name 行政区名称
pinyinInitials 行政区名称首字母
parentId 上级行政区 ID
name 空间层级名称

ThingLightingProjectModel

参数 说明
projectId 项目 ID
name 项目名称
geoName 项目地理位置
latitude 纬度
longitude 经度
backgroundUrl 项目背景图片
controlMode 控制模式,例如:
  • smart:智能控制
  • local:本地控制
  • remote:远程控制
leaderName 项目负责人名称
leaderMobile 项目负责人手机号码或邮箱地址
clientCount 设备总数
errorClientCount 离线设备总数(包括蓝牙直连设备)
authClientCount 授权设备总数
realOfflineCount 离线设备总数(不包括蓝牙直连设备)
power 能耗
detail 项目详细地址
projectType 项目类型
regionLocationId 项目区域 ID
projectTypeName 项目类型名称
projectIconUrl 项目图标 URL
displayOrder 排序
dealStatus 公版字段
role 公版字段
admin 公版字段