feat: 完善协议管理、师傅资质认证、分账配置并完成测试环境全量部署与同步

这个提交包含在:
2026-11-12 17:19:49 +08:00
父节点 fafddceaf2
当前提交 72cea8445f
共有 179 个文件被更改,包括 29242 次插入 和 3340 次删除

查看文件

@@ -346,12 +346,13 @@ class Service extends Backend
}
/**
* 同步商品规格型号表(支持特殊规格单独设价覆盖,留空或0则沿用商品默认服务价)
* 同步商品规格型号表(支持特殊规格单独设价覆盖与规格参考图,同步联动系统图库)
*/
protected function syncSpecs($serviceId, $specsInput)
{
if (empty($serviceId)) return;
$now = time();
$catId = (int)Db::name('service')->where('id', $serviceId)->value('cat_id');
$keepIds = [];
if (!empty($specsInput) && is_array($specsInput)) {
$idx = 0;
@@ -359,6 +360,7 @@ class Service extends Backend
$name = trim(isset($item['name']) ? $item['name'] : '');
if ($name === '') continue;
$specDesc = isset($item['description']) ? trim($item['description']) : '';
$specImage = isset($item['image']) ? trim((string)$item['image']) : '';
$specPrice = (isset($item['base_price']) && is_numeric($item['base_price']) && (float)$item['base_price'] > 0)
? round((float)$item['base_price'], 2)
: 0.00;
@@ -367,18 +369,23 @@ class Service extends Backend
$idx++;
if ($specId > 0) {
Db::name('service_spec')->where('id', $specId)->where('service_id', $serviceId)->update([
$updateData = [
'name' => $name,
'base_price' => $specPrice,
'description' => $specDesc,
'weigh' => $weigh,
'updatetime' => $now,
]);
];
if (array_key_exists('image', $item)) {
$updateData['image'] = $specImage;
}
Db::name('service_spec')->where('id', $specId)->where('service_id', $serviceId)->update($updateData);
$keepIds[] = $specId;
} else {
$newId = Db::name('service_spec')->insertGetId([
$specId = (int)Db::name('service_spec')->insertGetId([
'service_id' => $serviceId,
'name' => $name,
'image' => $specImage,
'base_price' => $specPrice,
'description' => $specDesc,
'weigh' => $weigh,
@@ -386,7 +393,35 @@ class Service extends Backend
'createtime' => $now,
'updatetime' => $now,
]);
$keepIds[] = $newId;
$keepIds[] = $specId;
}
// 若管理员为细分规格上传了参考图,自动同步更新或补充至 fa_system_gallery
if ($specImage !== '') {
$existingGal = Db::name('system_gallery')
->where('service_id', $serviceId)
->where('spec_id', $specId)
->find();
if ($existingGal) {
Db::name('system_gallery')->where('id', $existingGal['id'])->update([
'cat_id' => $catId,
'title' => $name,
'image' => $specImage,
'updatetime' => $now,
]);
} else {
Db::name('system_gallery')->insert([
'cat_id' => $catId,
'service_id' => $serviceId,
'spec_id' => $specId,
'title' => $name,
'image' => $specImage,
'weigh' => $weigh,
'status' => 'normal',
'createtime' => $now,
'updatetime' => $now,
]);
}
}
}
}
@@ -417,6 +452,7 @@ class Service extends Backend
Db::startTrans();
try {
Db::name('service_spec')->where('service_id', 'in', $idArr)->delete();
Db::name('system_gallery')->where('service_id', 'in', $idArr)->delete();
$deleted = Db::name('service')->where('id', 'in', $idArr)->delete();
Db::commit();
} catch (Exception $e) {