admin/addon/aliapp/model/AppletRelease.php

110 lines
3.5 KiB
PHP

<?php
namespace addon\aliapp\model;
use app\model\BaseModel;
use think\facade\Db;
/**
* Common: 小程序发布记录
* Author: wu-hui
* Time: 2022/12/29 16:50
* Class AppletRelease
* @package addon\aliapp\model
*/
class AppletRelease extends BaseModel{
protected $site_id;
// 支付宝小程序 创建版本的状态
protected $aliCreateStatus = [
0 => '构建排队中',
1 => '正在构建',
2 => '构建成功',
3 => '构建失败',
5 => '构建超时',
6 => '版本创建成功',
];
// 支付宝小程序 状态
protected $versionStatus = [
'INIT' => '开发中',
'AUDITING' => '审核中',
'AUDIT_REJECT' => '审核驳回',
'WAIT_RELEASE' => '待上架',
'BASE_AUDIT_PASS' => '准入不可营销',
'GRAY' => '灰度中',
'RELEASE' => '已上架',
'OFFLINE' => '已下架',
'AUDIT_OFFLINE' => '已下架',
];
public function __construct($siteId){
$this->site_id = $siteId;
}
/**
* Common: 获取小程序发布记录
* Author: wu-hui
* Time: 2022/12/29 17:04
* @return array
* @throws \think\db\exception\DbException
*/
public function getList(){
// 参数获取
$page = input('page',1);
$pageSize = input('page_size',PAGE_LIST_ROWS);
$aliPayAppletModel = new AliPayApplet($this->site_id);
// 列表获取
$field = [
'id',
'version',
'ali_create_status',
'is_experience_version',
'version_status',
'create_time',
'audit_reason'
];
$result = Db::name('applet_release')
->field($field)
->where('site_id',$this->site_id)
->where('type',1)
->order('version','DESC')
->paginate(['list_rows' => $pageSize,'page' => $page]);
if($result) {
$result = $result->toArray();
try{
$aliCreateStatus = $this->aliCreateStatus;
$versionStatus = $this->versionStatus;
$newestVersion = $aliPayAppletModel->newestVersion();
// 循环处理信息
$list = $result['data'] ?? [];
foreach($list as &$item){
// 获取构建状态
if(in_array($item['ali_create_status'],[0,1])) $item['ali_create_status'] = (int)$aliPayAppletModel->versionBuildQuery($item['version'],$item['id']);
$item['ali_create_status_text'] = $aliCreateStatus[$item['ali_create_status']];
// 获取状态
if($item['version_status']) $item['version_status_text'] = $versionStatus[$item['version_status']];
// 判断当前版本是否为最新版本
$item['is_newest_version'] = false;
if($item['version'] == $newestVersion) $item['is_newest_version'] = true;
}
// 获取版本信息
$list = [
'count' => $result['total'],
'list' => $list,
'page_count' => $result['last_page'],
];
return $this->success($list);
}catch(\Exception $e){
return $this->error('',$e->getMessage());
}
}
return $this->success();
}
}