|
@@ -19,6 +19,7 @@ class ProductActivityService extends Service
|
|
DB::beginTransaction();
|
|
DB::beginTransaction();
|
|
|
|
|
|
$model = ProductActivity::where('id',$data['id'])->first();
|
|
$model = ProductActivity::where('id',$data['id'])->first();
|
|
|
|
+ $model->type = $data['type'] ?? 0;
|
|
$model->title = $data['title'] ?? "";
|
|
$model->title = $data['title'] ?? "";
|
|
$model->start_time = $data['start_time'] ?? 0;
|
|
$model->start_time = $data['start_time'] ?? 0;
|
|
$model->end_time = $data['end_time'] ?? 0;
|
|
$model->end_time = $data['end_time'] ?? 0;
|
|
@@ -64,6 +65,7 @@ class ProductActivityService extends Service
|
|
DB::beginTransaction();
|
|
DB::beginTransaction();
|
|
|
|
|
|
$model = new ProductActivity();
|
|
$model = new ProductActivity();
|
|
|
|
+ $model->type = $data['type'] ?? 0;
|
|
$model->title = $data['title'] ?? "";
|
|
$model->title = $data['title'] ?? "";
|
|
$model->start_time = $data['start_time'] ?? 0;
|
|
$model->start_time = $data['start_time'] ?? 0;
|
|
$model->end_time = $data['end_time'] ?? 0;
|
|
$model->end_time = $data['end_time'] ?? 0;
|
|
@@ -166,7 +168,7 @@ class ProductActivityService extends Service
|
|
public function productList($data,$user){
|
|
public function productList($data,$user){
|
|
$model = ProductActivity::TopClear($user,$data);
|
|
$model = ProductActivity::TopClear($user,$data);
|
|
$model = $model->where('del_time',0)
|
|
$model = $model->where('del_time',0)
|
|
- ->select('id','title','crt_id','mark','start_time','end_time','crt_time')
|
|
|
|
|
|
+ ->select('id','title','crt_id','mark','start_time','end_time','crt_time','type')
|
|
->orderby('id', 'desc');
|
|
->orderby('id', 'desc');
|
|
|
|
|
|
if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
|
|
if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
|
|
@@ -188,26 +190,38 @@ class ProductActivityService extends Service
|
|
}
|
|
}
|
|
|
|
|
|
public function productRule(&$data, $user, $is_add = true){
|
|
public function productRule(&$data, $user, $is_add = true){
|
|
- if(empty($data['title'])) return [false,'活动名称名称不能为空'];
|
|
|
|
|
|
+ if(empty($data['type'])) return [false,'活动分类不能为空'];
|
|
|
|
+ $type_name = ProductActivity::$type_name[$data['type']] ?? "";
|
|
|
|
+ if(empty($type_name)) return [false,'活动分类不存在'];
|
|
|
|
+ if(empty($data['title'])) return [false,'活动名称不能为空'];
|
|
if(empty($data['activity_time'][0]) || empty($data['activity_time'][1])) return [false,'请填写活动时间范围'];
|
|
if(empty($data['activity_time'][0]) || empty($data['activity_time'][1])) return [false,'请填写活动时间范围'];
|
|
$data['start_time'] = $this->changeDateToDateMin($data['activity_time'][0]);
|
|
$data['start_time'] = $this->changeDateToDateMin($data['activity_time'][0]);
|
|
$data['end_time'] = $this->changeDateToDateMin($data['activity_time'][1]);
|
|
$data['end_time'] = $this->changeDateToDateMin($data['activity_time'][1]);
|
|
|
|
+ $return = [];
|
|
if($is_add){
|
|
if($is_add){
|
|
- $product = ProductActivityPrice::where('del_time',0)
|
|
|
|
- ->where('start_time', '<=', $data['end_time'])
|
|
|
|
- ->where('end_time', '>=', $data['start_time'])
|
|
|
|
- ->select('product_id')
|
|
|
|
|
|
+ $product = ProductActivityPrice::from('product_activity_price as a')
|
|
|
|
+ ->join('product_activity as b','b.id','a.product_activity_id')
|
|
|
|
+ ->where('a.del_time',0)
|
|
|
|
+ ->where('a.start_time', '<=', $data['end_time'])
|
|
|
|
+ ->where('a.end_time', '>=', $data['start_time'])
|
|
|
|
+ ->select('a.product_id','b.type')
|
|
->get()->toArray();
|
|
->get()->toArray();
|
|
- $product = array_column($product,'product_id');
|
|
|
|
|
|
+ foreach ($product as $value){
|
|
|
|
+ $return[] = $value['product_id'] . $value['type'];
|
|
|
|
+ }
|
|
}else{
|
|
}else{
|
|
if(empty($data['id'])) return [false,'ID不能为空'];
|
|
if(empty($data['id'])) return [false,'ID不能为空'];
|
|
- $product = ProductActivityPrice::where('del_time',0)
|
|
|
|
- ->where('product_activity_id','<>',$data['id'])
|
|
|
|
- ->where('start_time', '<=', $data['end_time'])
|
|
|
|
- ->where('end_time', '>=', $data['start_time'])
|
|
|
|
- ->select('product_id')
|
|
|
|
|
|
+ $product = ProductActivityPrice::from('product_activity_price as a')
|
|
|
|
+ ->join('product_activity as b','b.id','a.product_activity_id')
|
|
|
|
+ ->where('a.product_activity_id','<>',$data['id'])
|
|
|
|
+ ->where('a.del_time',0)
|
|
|
|
+ ->where('a.start_time', '<=', $data['end_time'])
|
|
|
|
+ ->where('a.end_time', '>=', $data['start_time'])
|
|
|
|
+ ->select('a.product_id','b.type')
|
|
->get()->toArray();
|
|
->get()->toArray();
|
|
- $product = array_column($product,'product_id');
|
|
|
|
|
|
+ foreach ($product as $value){
|
|
|
|
+ $return[] = $value['product_id'] . $value['type'];
|
|
|
|
+ }
|
|
}
|
|
}
|
|
if(! empty($data['product'])){
|
|
if(! empty($data['product'])){
|
|
$start_time = date("Y-m-d H:i",$data['start_time']);
|
|
$start_time = date("Y-m-d H:i",$data['start_time']);
|
|
@@ -220,7 +234,9 @@ class ProductActivityService extends Service
|
|
->toArray();
|
|
->toArray();
|
|
foreach ($data['product'] as $value){
|
|
foreach ($data['product'] as $value){
|
|
$pro = $map2[$value['product_id']] ?? "";
|
|
$pro = $map2[$value['product_id']] ?? "";
|
|
- if(in_array($value['product_id'], $product)) return [false,'产品:' . $pro . '在' . $start_time . '——' . $end_time . '已设置活动价格'];
|
|
|
|
|
|
+ if(in_array($value['product_id'] . $data['type'], $return)) {
|
|
|
|
+ return [false,'产品:' . $pro . '在' . $start_time . '——' . $end_time . '已设置'. $type_name .'价格'];
|
|
|
|
+ }
|
|
if(! empty($value['price'])) {
|
|
if(! empty($value['price'])) {
|
|
$tmp = $map[$value['basic_type_id']] ?? '';
|
|
$tmp = $map[$value['basic_type_id']] ?? '';
|
|
$res = $this->checkNumber($value['price']);
|
|
$res = $this->checkNumber($value['price']);
|
|
@@ -249,6 +265,7 @@ class ProductActivityService extends Service
|
|
$data['data'][$key]['activity_time'] = $start_time . '——' . $end_time;
|
|
$data['data'][$key]['activity_time'] = $start_time . '——' . $end_time;
|
|
$data['data'][$key]['crt_time'] = $value['crt_time'] ? date('Y-m-d H:i:s',$value['crt_time']) : '';
|
|
$data['data'][$key]['crt_time'] = $value['crt_time'] ? date('Y-m-d H:i:s',$value['crt_time']) : '';
|
|
$data['data'][$key]['crt_name'] = $emp[$value['crt_id']] ?? '';
|
|
$data['data'][$key]['crt_name'] = $emp[$value['crt_id']] ?? '';
|
|
|
|
+ $data['data'][$key]['type_title'] = ProductActivity::$type_name[$value['type']] ?? '';
|
|
}
|
|
}
|
|
|
|
|
|
return $data;
|
|
return $data;
|