feat: 完善协议管理、师傅资质认证、分账配置并完成测试环境全量部署与同步
这个提交包含在:
@@ -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) {
|
||||
|
||||
在新工单中引用
屏蔽一个用户