feat(ota): 新增OTA远程升级功能
- 创建OTA版本管理表结构,支持版本名称、构建号、APK文件等信息存储 - 实现后台OTA版本管理界面,包含新增、编辑、删除和发布功能 - 开发API接口用于设备版本检查和更新包下载 - 实现版本发布逻辑,自动归档旧版本并计算APK文件哈希值 - 添加强制更新、目标设备白名单和最低版本限制功能 - 集成文件上传和选择组件,支持APK文件管理 - 实现版本状态管理(草稿、已发布、已归档)和权限控制
This commit is contained in:
57
application/common/model/OtaVersion.php
Normal file
57
application/common/model/OtaVersion.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
/**
|
||||
* OTA 版本模型
|
||||
*
|
||||
* 供 API 控制器使用的公共模型,与后台管理模型共享数据访问。
|
||||
*/
|
||||
class OtaVersion extends Model
|
||||
{
|
||||
// 表名
|
||||
protected $name = 'ota_version';
|
||||
|
||||
// 自动写入时间戳
|
||||
protected $autoWriteTimestamp = 'int';
|
||||
|
||||
// 时间字段格式
|
||||
protected $createTime = 'createtime';
|
||||
protected $updateTime = 'updatetime';
|
||||
|
||||
// 追加属性
|
||||
protected $append = [
|
||||
'is_force_update_text',
|
||||
'status_text',
|
||||
];
|
||||
|
||||
/**
|
||||
* 获取强制更新状态文本
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getIsForceUpdateTextAttr()
|
||||
{
|
||||
return $this->getData('is_force_update') ? '强制更新' : '可选更新';
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取状态文本
|
||||
*
|
||||
* @param string $value
|
||||
* @param array $data
|
||||
* @return string
|
||||
*/
|
||||
public function getStatusTextAttr($value, $data)
|
||||
{
|
||||
$statusMap = [
|
||||
'draft' => '草稿',
|
||||
'published' => '已发布',
|
||||
'archived' => '已归档',
|
||||
];
|
||||
$status = $data['status'] ?? '';
|
||||
return $statusMap[$status] ?? '未知';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user