118 lines
3.6 KiB
PHP
118 lines
3.6 KiB
PHP
|
<?php
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | Niucloud-admin 企业快速开发的多应用管理平台
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | 官方网址:https://www.niucloud.com
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | niucloud团队 版权所有 开源版本可自由商用
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | Author: Niucloud Team
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
|
|||
|
namespace app\service\admin\weapp;
|
|||
|
|
|||
|
use app\dict\sys\FileDict;
|
|||
|
use app\service\core\weapp\CoreWeappCloudService;
|
|||
|
use core\base\BaseAdminService;
|
|||
|
use app\dict\sys\StorageDict;
|
|||
|
use app\service\core\upload\CoreUploadService;
|
|||
|
use app\model\weapp\WeappVersion;
|
|||
|
use core\exception\CommonException;
|
|||
|
|
|||
|
/**
|
|||
|
* 小程序包版本发布
|
|||
|
*/
|
|||
|
class WeappVersionService extends BaseAdminService
|
|||
|
{
|
|||
|
public function __construct()
|
|||
|
{
|
|||
|
parent::__construct();
|
|||
|
$this->model = new WeappVersion();
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 添加小程序版本
|
|||
|
* @param array $data
|
|||
|
*/
|
|||
|
public function add(array $data)
|
|||
|
{
|
|||
|
$uploading = $this->model->where([ ['site_id', '=', $this->site_id], ['status', '=', 0] ])->field('id')->findOrEmpty();
|
|||
|
if (!$uploading->isEmpty()) throw new CommonException('WEAPP_UPLOADING');
|
|||
|
|
|||
|
$version_no = $this->model->where([ ['site_id', '=', $this->site_id] ])->order('version_no desc')->field('version_no')->findOrEmpty()->toArray()['version_no'] ?? 0;
|
|||
|
$version_no += 1;
|
|||
|
$version = "1.0.{$version_no}";
|
|||
|
|
|||
|
$upload_res = (new CoreWeappCloudService())->uploadWeapp([
|
|||
|
'site_id' => $this->site_id,
|
|||
|
'version' => $version,
|
|||
|
'desc' => $data['desc'] ?? ''
|
|||
|
]);
|
|||
|
|
|||
|
$res = $this->model->create([
|
|||
|
'site_id' => $this->site_id,
|
|||
|
'version' => $version,
|
|||
|
'version_no' => $version_no,
|
|||
|
'desc' => $data['desc'] ?? '',
|
|||
|
'create_time' => time(),
|
|||
|
'task_key' => $upload_res['key']
|
|||
|
]);
|
|||
|
return $res->id;
|
|||
|
}
|
|||
|
|
|||
|
public function getPreviewImage() {
|
|||
|
try {
|
|||
|
return (new CoreWeappCloudService())->getWeappPreviewImage();
|
|||
|
} catch (\Exception $e) {
|
|||
|
return '';
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 获取小程序版本列表
|
|||
|
* @param array $where
|
|||
|
* @return array
|
|||
|
*/
|
|||
|
public function getPage(array $where = [])
|
|||
|
{
|
|||
|
$field = 'id, version, version_no, desc, create_time, status, fail_reason, task_key';
|
|||
|
$order = 'version_no desc';
|
|||
|
$where[] = ['site_id', '=', $this->site_id];
|
|||
|
$search_model = $this->model->where($where)->field($field)->order($order)->append(['status_name']);
|
|||
|
return $this->pageQuery($search_model);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 编辑
|
|||
|
* @param int $id
|
|||
|
* @param array $data
|
|||
|
* @return true
|
|||
|
*/
|
|||
|
public function edit(int $id, array $data)
|
|||
|
{
|
|||
|
$data['status'] = 0;
|
|||
|
$data['update_time'] = time();
|
|||
|
$this->model->where([['id', '=', $id], ['site_id', '=', $this->site_id] ])->create($data);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 删除
|
|||
|
* @param int $id
|
|||
|
* @return true
|
|||
|
*/
|
|||
|
public function del(int $id){
|
|||
|
$this->model->where([['id', '=', $id], ['site_id', '=', $this->site_id]])->delete();
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 获取小程序上传日志
|
|||
|
* @param string $key
|
|||
|
* @return null
|
|||
|
*/
|
|||
|
public function getUploadLog(string $key) {
|
|||
|
return (new CoreWeappCloudService())->getWeappCompileLog($key);
|
|||
|
}
|
|||
|
}
|