Merge branch 'develop'
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\service;
|
||||
|
||||
use app\common\logic\Fingerprint;
|
||||
use app\common\logic\ModelNaming;
|
||||
use app\common\logic\SkuCodeBuilder;
|
||||
use app\common\validate\VehVehicleSkuValidate;
|
||||
use app\common\traits\crud\CrudServiceTrait;
|
||||
use app\common\model\VehVehicleSku;
|
||||
use support\Request;
|
||||
|
||||
class VehVehicleSkuService
|
||||
{
|
||||
|
||||
use CrudServiceTrait;
|
||||
|
||||
/**
|
||||
* 指定当前要操作的模型
|
||||
*/
|
||||
protected string $modelClass = VehVehicleSku::class;
|
||||
|
||||
/**
|
||||
* 验证器
|
||||
*/
|
||||
protected $validator = VehVehicleSkuValidate::class;
|
||||
|
||||
/**
|
||||
* 获取验证器
|
||||
*/
|
||||
public function getValidator()
|
||||
{
|
||||
return new $this->validator;
|
||||
}
|
||||
|
||||
|
||||
// // 枚举
|
||||
// private const MAPS = [
|
||||
// 'BODY' => [
|
||||
// 'SEDAN' => '三厢轿车', 'SUV'=>'SUV', 'HB'=>'两厢/掀背', 'MPV'=>'MPV', 'PICKUP'=>'皮卡'
|
||||
// ],
|
||||
// 'DRIVE' => [
|
||||
// 'FWD'=>'前驱', 'RWD'=>'后驱', 'AWD'=>'四驱(AWD)', '4WD'=>'四驱(4WD)'
|
||||
// ],
|
||||
// 'MOTOR_LAYOUT' => [
|
||||
// 'FWD'=>'前置单电机', 'RWD'=>'后置单电机', 'AWD'=>'双电机四驱', 'DM-I'=>'DM-i', 'DM-P'=>'DM-p'
|
||||
// ],
|
||||
// 'FUEL' => [
|
||||
// 'GAS'=>'汽油', 'HEV'=>'油电混动', 'PHEV'=>'插电混动', 'EV'=>'纯电', 'EREV'=>'增程'
|
||||
// ],
|
||||
// 'TRANS' => [
|
||||
// 'MT'=>'手动', 'AT'=>'自动', 'CVT'=>'无级', 'DCT'=>'双离合', '1SPEED'=>'单速'
|
||||
// ],
|
||||
// 'RANGE_STD' => [
|
||||
// 'CLTC'=>'CLTC', 'WLTP'=>'WLTP', 'EPA'=>'EPA', 'NEDC'=>'NEDC'
|
||||
// ],
|
||||
// 'EMISSION' => [
|
||||
// 'CHN6'=>'国六', 'EURO6'=>'欧6', 'EPA'=>'美国EPA'
|
||||
// ],
|
||||
// ];
|
||||
|
||||
// // *_code取中文
|
||||
// public function label(string $dict, ?string $code): ?string
|
||||
// {
|
||||
// if ($code === null || $code === '') return null;
|
||||
// $dict = strtoupper($dict);
|
||||
// $code = strtoupper($code);
|
||||
// return self::MAPS[$dict][$code] ?? $code;
|
||||
// }
|
||||
|
||||
// // 静态映射把 *_code → 中文
|
||||
// private function backfill(array $d): array
|
||||
// {
|
||||
// $d['body_type'] = $this->label('BODY', $d['body_type_code']);
|
||||
// $d['drive_type'] = $this->label('DRIVE', $d['drive_type_code']);
|
||||
// $d['motor_layout'] = $this->label('MOTOR_LAYOUT', $d['motor_layout_code']);
|
||||
// $d['fuel_type'] = $this->label('FUEL', $d['fuel_type_code']);
|
||||
// $d['transmission'] = $this->label('TRANS', $d['transmission_code']);
|
||||
// $d['range_std'] = $this->label('RANGE_STD', $d['range_std_code']);
|
||||
// $d['emission_std'] = $this->label('EMISSION', $d['emission_std_code']);
|
||||
// return $d;
|
||||
// }
|
||||
|
||||
protected function buildQueryConfig(Request $request, string $scene = 'default'): array
|
||||
{
|
||||
$p = $request->all();
|
||||
|
||||
$config = [];
|
||||
$config['model'] = $this->modelClass;
|
||||
switch ($scene) {
|
||||
case 'default':
|
||||
$config['where']['is_active'] = 1;
|
||||
$config['order']['id'] = 'desc';
|
||||
break;
|
||||
case 'index':
|
||||
$config['where']['is_active'] = 1;
|
||||
$config['order']['id'] = 'desc';
|
||||
break;
|
||||
case 'show':
|
||||
$config['where']['id'] = $p['id'];
|
||||
$config['where']['is_active'] = 1;
|
||||
break;
|
||||
case 'store':
|
||||
break;
|
||||
case 'update':
|
||||
$config['where']['id'] = $p['id'];
|
||||
break;
|
||||
case 'destroy':
|
||||
$config['where']['id'] = $p['id'];
|
||||
break;
|
||||
}
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
public function beforeServiceStore($data, Request $request)
|
||||
{
|
||||
// $data = $this->backfill($data);
|
||||
if (empty($data['model_code'])) {
|
||||
$data['model_code'] = ModelNaming::buildModelCode($data);
|
||||
}
|
||||
if (empty($data['model_name'])) {
|
||||
$data['model_name'] = ModelNaming::buildModelName($data);
|
||||
}
|
||||
$data['sku_code'] = SkuCodeBuilder::build($data);
|
||||
$data['corp_id'] = 0;
|
||||
$data['created_by'] = $request->user->uid;
|
||||
$data['updated_by'] = $request->user->uid;
|
||||
// 指纹
|
||||
$data['fingerprint'] = Fingerprint::makeFromArray($data);
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function afterServiceStore($res)
|
||||
{
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
public function beforeServiceUpdate($data, Request $request)
|
||||
{
|
||||
unset($data['created_at']);
|
||||
unset($data['updated_at']);
|
||||
// $data = $this->backfill($data);
|
||||
if (empty($data['model_code'])) {
|
||||
$data['model_code'] = ModelNaming::buildModelCode($data);
|
||||
}
|
||||
if (empty($data['model_name'])) {
|
||||
$data['model_name'] = ModelNaming::buildModelName($data);
|
||||
}
|
||||
// 填充系统字段
|
||||
$data['updated_by'] = $request->user->uid;
|
||||
// 指纹
|
||||
$data['fingerprint'] = Fingerprint::makeFromArray($data);
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function afterServiceUpdate($res)
|
||||
{
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user