fix 同步更新

This commit is contained in:
CQ 2026-03-20 12:28:34 +08:00
parent ddf0fa3384
commit c078d97aa1
5 changed files with 22 additions and 18 deletions

View File

@ -816,16 +816,16 @@
</div> </div>
</div> </div>
<div class="app-section-header mt-[20px] mb-[12px]" v-if="detailAddon.is_local || !detailAddon.is_local&&detailAddon.expire_time"> <div class="app-section-header mt-[20px] mb-[12px]">
<div class="app-section-title">服务周期</div> <div class="app-section-title">服务周期</div>
<div class="app-section-line"></div> <div class="app-section-line"></div>
</div> </div>
<div class="space-y-[10px] text-[14px]" v-if="detailAddon.is_local || !detailAddon.is_local&&detailAddon.expire_time"> <div class="space-y-[10px] text-[14px]">
<div class="flex items-center"> <div class="flex items-center">
<div class="w-[84px] text-[#9699B6]">有效期至</div> <div class="w-[84px] text-[#9699B6]">有效期至</div>
<div class="text-[#374151] flex items-center"> <div class="text-[#374151] flex items-center">
<div class="text-[#374151]">{{detailAddon.is_local ? '长期' : detailAddon.expire_time }}</div> <div class="text-[#374151]">{{ detailAddon.expire_time || '--' }}</div>
<div class="ml-[10px] flex items-center gap-[3px]"> <div class="ml-[10px] flex items-center gap-[3px]" v-if="detailAddon.app_id">
<span class="iconfont icongouwuche text-[var(--el-color-primary)]"></span> <span class="iconfont icongouwuche text-[var(--el-color-primary)]"></span>
<span class="text-[var(--el-color-primary)] text-[14px] cursor-pointer" @click="toLink('pc')">续费应用</span> <span class="text-[var(--el-color-primary)] text-[14px] cursor-pointer" @click="toLink('pc')">续费应用</span>
</div> </div>
@ -853,11 +853,11 @@
</div> </div>
</template> </template>
<div class="app-section-header mt-[20px] mb-[12px]" v-if="detailAddon.key != 'niucloud-admin'"> <div class="app-section-header mt-[20px] mb-[12px]" v-if="detailAddon.key != 'niucloud-admin' && detailAddon.app_id">
<div class="app-section-title">访问应用</div> <div class="app-section-title">访问应用</div>
<div class="app-section-line"></div> <div class="app-section-line"></div>
</div> </div>
<div class="flex gap-[30px]" v-if="detailAddon.key != 'niucloud-admin'"> <div class="flex gap-[30px]" v-if="detailAddon.key != 'niucloud-admin' && detailAddon.app_id">
<div class="bg-[#F5F5F5] w-[336px] h-[60px] px-[20px] flex items-center justify-between cursor-pointer" @click="toLink('pc')"> <div class="bg-[#F5F5F5] w-[336px] h-[60px] px-[20px] flex items-center justify-between cursor-pointer" @click="toLink('pc')">
<div class="flex items-center"> <div class="flex items-center">
<div class="w-[28px] h-[28px] flex items-center justify-center mr-[2px]"> <div class="w-[28px] h-[28px] flex items-center justify-center mr-[2px]">
@ -891,8 +891,8 @@
<div class="app-section-title">更新历史</div> <div class="app-section-title">更新历史</div>
<div class="app-section-line"></div> <div class="app-section-line"></div>
</div> </div>
<div class="detail-upgrade-log h-[500px] overflow-auto" v-loading="detailLogLoading"> <div class="detail-upgrade-log -mx-[20px] h-[500px] overflow-auto" v-loading="detailLogLoading">
<el-scrollbar> <el-scrollbar class="px-[20px]">
<el-timeline style="width: 100%" v-if="detailVersionList.length"> <el-timeline style="width: 100%" v-if="detailVersionList.length">
<el-timeline-item v-for="(item, index) in detailVersionList" :key="item.version_no || index" placement="left"> <el-timeline-item v-for="(item, index) in detailVersionList" :key="item.version_no || index" placement="left">
<el-collapse v-model="detailLogActive" accordion> <el-collapse v-model="detailLogActive" accordion>
@ -900,8 +900,8 @@
<template #title> <template #title>
<div class="flex items-center justify-between flex-1"> <div class="flex items-center justify-between flex-1">
<div class="flex flex-col items-baseline"> <div class="flex flex-col items-baseline">
<p class="text-[#1D1F3A] text-[16px]">版本V{{ item.version_no }} </p> <p class="text-[#1D1F3A] text-[14px]">版本V{{ item.version_no }} </p>
<div class="flex items-center"> <div class="flex items-center leading-[1] mt-[2px]">
<span class="text-[#9699B6] text-[14px]">{{ timeSplit(item.release_time)[0] }}</span> <span class="text-[#9699B6] text-[14px]">{{ timeSplit(item.release_time)[0] }}</span>
<span class="text-[#9699B6] text-[14px] ml-[3px]">{{ timeSplit(item.release_time)[1] }}</span> <span class="text-[#9699B6] text-[14px] ml-[3px]">{{ timeSplit(item.release_time)[1] }}</span>
</div> </div>

View File

@ -17,7 +17,6 @@ use think\facade\Route;
//支付异步回调 //支付异步回调
Route::any('pay/notify/:site_id/:channel/:type/:action', 'pay.Pay/notify') Route::any('pay/notify/:site_id/:channel/:type/:action', 'pay.Pay/notify')
->middleware(ApiChannel::class) ->middleware(ApiChannel::class)
->middleware(ApiCheckToken::class)
->middleware(ApiLog::class); ->middleware(ApiLog::class);
/** /**
* 路由 * 路由
@ -27,7 +26,6 @@ Route::group('pay',function () {
Route::get('friendspay/info/:trade_type/:trade_id', 'pay.Pay/friendspayInfo'); Route::get('friendspay/info/:trade_type/:trade_id', 'pay.Pay/friendspayInfo');
})->middleware(ApiChannel::class) })->middleware(ApiChannel::class)
->middleware(ApiCheckToken::class)
->middleware(ApiLog::class); ->middleware(ApiLog::class);
Route::group('pay',function () { Route::group('pay',function () {

View File

@ -5076,7 +5076,7 @@ VALUES (110000, 0, '北京市', '北京', '116.405285', '39.904989', 1, 0, 1),
(460400499, 460400, '洋浦经济开发区', '洋浦经济开发区', '109.202064', '19.736941', 3, 0, 1), (460400499, 460400, '洋浦经济开发区', '洋浦经济开发区', '109.202064', '19.736941', 3, 0, 1),
(460400500, 460400, '华南热作学院', '华南热作学院', '109.494073', '19.505382', 3, 0, 1); (460400500, 460400, '华南热作学院', '华南热作学院', '109.494073', '19.505382', 3, 0, 1);
DROP TABLE IF EXISTS `site_merchant_bind`;
CREATE TABLE `site_merchant_bind` CREATE TABLE `site_merchant_bind`
( (
id int NOT NULL AUTO_INCREMENT, id int NOT NULL AUTO_INCREMENT,

View File

@ -45,7 +45,7 @@ class CoreAddonService extends CoreAddonBaseService
public function getLocalAddonList() public function getLocalAddonList()
{ {
$list = []; $list = [];
$online_app_list = $online_apps= []; $online_app_list = $online_apps = [];
$install_addon_list = $this->model->append(['status_name'])->column('title, icon, key, desc, status, author, version, install_time, update_time, cover', 'key'); $install_addon_list = $this->model->append(['status_name'])->column('title, icon, key, desc, status, author, version, install_time, update_time, cover', 'key');
try { try {
$niucloud_module_list = (new CoreModuleService())->getModuleList()['data'] ?? []; $niucloud_module_list = (new CoreModuleService())->getModuleList()['data'] ?? [];
@ -67,10 +67,15 @@ class CoreAddonService extends CoreAddonBaseService
'cover' => $v['app']['window_logo'][0], 'cover' => $v['app']['window_logo'][0],
); );
$data['install_info'] = $install_addon_list[$v['app']['app_key']] ?? []; $data['install_info'] = $install_addon_list[$v['app']['app_key']] ?? [];
//给安装的插件中为授权插件或应用的数据赋值过期时间
if (isset($install_addon_list[$v['app']['app_key']])) {
$install_addon_list[$v['app']['app_key']]['expire_time'] = $v['expire_time'];
}
$list[$v['app']['app_key']] = $data; $list[$v['app']['app_key']] = $data;
} }
$online_app_list = array_column($list ,'key'); $online_app_list = array_column($list, 'key');
$online_apps = array_column($list,'app_id' ,'key'); $online_apps = array_column($list, 'app_id', 'key');
} catch (Throwable $e) { } catch (Throwable $e) {
$error = $e->getMessage(); $error = $e->getMessage();
} }
@ -86,9 +91,9 @@ class CoreAddonService extends CoreAddonBaseService
$data['is_download'] = true; $data['is_download'] = true;
$data['is_local'] = !in_array($data['key'], $online_app_list); $data['is_local'] = !in_array($data['key'], $online_app_list);
$data['version'] = isset($list[$data['key']]) ? $list[$data['key']]['version'] : $data['version']; $data['version'] = isset($list[$data['key']]) ? $list[$data['key']]['version'] : $data['version'];
$data['app_id'] = in_array($data['key'], $online_app_list) ? $online_apps[$data['key']] : 0; $data['app_id'] = in_array($data['key'], $online_app_list) ? $online_apps[$data['key']] : 0;
$data['author_phone'] = ''; $data['author_phone'] = '';
$data['expire_time'] = '长期有效'; $data['expire_time'] = !isset($install_addon_list[$data['key']]) ? '长期有效' : ($install_addon_list[$data['key']]['expire_time'] ?? '');
$list[$key] = $data; $list[$key] = $data;
} }
} }

View File

@ -1,3 +1,4 @@
DROP TABLE IF EXISTS `site_merchant_bind`;
CREATE TABLE `site_merchant_bind` CREATE TABLE `site_merchant_bind`
( (
id int NOT NULL AUTO_INCREMENT, id int NOT NULL AUTO_INCREMENT,