|
@@ -6,6 +6,7 @@ use App\Model\BasicType;
|
|
|
use App\Model\Construction;
|
|
|
use App\Model\Employee;
|
|
|
use App\Model\PurchaseOrder;
|
|
|
+use App\Model\SalesOrder;
|
|
|
use App\Model\SeeRange;
|
|
|
use App\Model\SportsBag;
|
|
|
use App\Model\SportsBagProductInfo;
|
|
@@ -25,6 +26,7 @@ class SportsBagService extends Service
|
|
|
$material_model = SportsBag::where('id',$data['id'])->first();
|
|
|
$material_model->title = $data['title'];
|
|
|
$material_model->purchase_attribute = $data['purchase_attribute'];
|
|
|
+ $material_model->is_attribute = $data['is_attribute'];
|
|
|
$material_model->mark = $data['mark'] ?? "";
|
|
|
$material_model->number = $data['number'];
|
|
|
$material_model->start_time = $data['start_time'] ?? 0;
|
|
@@ -84,6 +86,7 @@ class SportsBagService extends Service
|
|
|
$material_model = new SportsBag();
|
|
|
$material_model->order_number = $data['order_number'];
|
|
|
$material_model->purchase_attribute = $data['purchase_attribute'];
|
|
|
+ $material_model->is_attribute = $data['is_attribute'];
|
|
|
$material_model->title = $data['title'];
|
|
|
$material_model->mark = $data['mark'] ?? "";
|
|
|
$material_model->number = $data['number'];
|
|
@@ -125,7 +128,7 @@ class SportsBagService extends Service
|
|
|
],$user);
|
|
|
if(! $status) return [true, '保存成功,活动包确认失败,异常信息:' . $msg];
|
|
|
}
|
|
|
- dd(1);
|
|
|
+
|
|
|
DB::commit();
|
|
|
}catch (\Throwable $e){
|
|
|
DB::rollBack();
|
|
@@ -159,14 +162,24 @@ class SportsBagService extends Service
|
|
|
if(empty($order)) return [false, '活动包不存在或已被删除'];
|
|
|
$order = $order->toArray();
|
|
|
$purchase_attribute = explode(',',$order['purchase_attribute']);
|
|
|
- $basic_type = BasicType::whereIn('id',$purchase_attribute)->pluck('title','id')->toArray();
|
|
|
- $str = "";
|
|
|
- if(! empty($basic_type)){
|
|
|
+ if($order['is_attribute'] == 1){
|
|
|
+ $purchase_attribute = explode(',',$order['purchase_attribute']);
|
|
|
+ $str2 = "";
|
|
|
foreach ($purchase_attribute as $value){
|
|
|
- $str .= $basic_type[$value] . ',';
|
|
|
+ $tmp = SalesOrder::$model_type_title[$value] ?? "";
|
|
|
+ if(! empty($tmp)) $str2 .= $tmp . ',';
|
|
|
}
|
|
|
+ $order['purchase_attribute_title'] = rtrim($str2,',');
|
|
|
+ }else{
|
|
|
+ $basic_type = BasicType::whereIn('id',$purchase_attribute)->pluck('title','id')->toArray();
|
|
|
+ $str = "";
|
|
|
+ if(! empty($basic_type)){
|
|
|
+ foreach ($purchase_attribute as $value){
|
|
|
+ $str .= $basic_type[$value] . ',';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $order['purchase_attribute_title'] = rtrim($str,',');
|
|
|
}
|
|
|
- $order['purchase_attribute_title'] = rtrim($str,',');
|
|
|
|
|
|
$start_time = $order['start_time'] ? date("Y-m-d H:i",$order['start_time']) : '';
|
|
|
$end_time = $order['end_time'] ? date("Y-m-d H:i",$order['end_time']) : '';
|
|
@@ -229,10 +242,11 @@ class SportsBagService extends Service
|
|
|
public function getList($data,$user){
|
|
|
$model = SportsBag::SportsBagClear($user,$data);
|
|
|
$model = $model->where('del_time',0)
|
|
|
- ->select('id','title','number','start_time','end_time','crt_time','crt_id','mark','total_amount','state','order_number','purchase_attribute')
|
|
|
+ ->select('id','title','number','start_time','end_time','crt_time','crt_id','mark','total_amount','state','order_number','purchase_attribute',"is_attribute")
|
|
|
->orderby('id', 'desc');
|
|
|
|
|
|
if(! empty($data['order_number'])) $model->where('order_number', 'LIKE', '%'.$data['order_number'].'%');
|
|
|
+ if(! empty($data['is_attribute'])) $model->where('is_attribute',$data['is_attribute']);
|
|
|
if(! empty($data['purchase_attribute'])) $model->whereRaw("FIND_IN_SET(?, purchase_attribute)", [$data['purchase_attribute']]);
|
|
|
if(isset($data['state'])) $model->where('state', $data['state']);
|
|
|
if(isset($data['valid'])) {
|
|
@@ -296,12 +310,14 @@ class SportsBagService extends Service
|
|
|
$data['data'][$key]['crt_name'] = $emp_map[$value['crt_id']] ?? '';
|
|
|
$data['data'][$key]['state_title'] = $this->makeState($data['data'][$key], $state_array);
|
|
|
$data['data'][$key]['product'] = $product[$value['id']] ?? [];
|
|
|
+ $data['data'][$key]['is_attribute_title'] = SportsBag::$attribute_name[$value['is_attribute']] ?? "";
|
|
|
}
|
|
|
|
|
|
return $data;
|
|
|
}
|
|
|
|
|
|
public function makeState($value, $state_array){
|
|
|
+ $nowStamp = time();
|
|
|
if(! empty($state_array[$value['order_number']])){
|
|
|
$return = $state_array[$value['order_number']];
|
|
|
if($value['state'] == SportsBag::State_minus_one){
|
|
@@ -312,7 +328,18 @@ class SportsBagService extends Service
|
|
|
}elseif($value['state'] == SportsBag::STATE_ZERO){
|
|
|
$state = "待" . $value['crt_name'] . "提交";
|
|
|
}else{
|
|
|
+ $attribute_2 = "";
|
|
|
+ if($value['state'] == SportsBag::STATE_TWO){
|
|
|
+ if($nowStamp < $value['start_time']){
|
|
|
+ $attribute_2 = "待开始";
|
|
|
+ }elseif ($nowStamp > $value['end_time']){
|
|
|
+ $attribute_2 = "已结束";
|
|
|
+ }elseif ($nowStamp >= $value['start_time'] && $nowStamp <= $value['end_time']){
|
|
|
+ $attribute_2 = "正在进行";
|
|
|
+ }
|
|
|
+ }
|
|
|
$state = SportsBag::$name[$value['state']] ?? '';
|
|
|
+ if(! empty($attribute_2)) $state = $state . "($attribute_2)";
|
|
|
}
|
|
|
|
|
|
return $state;
|
|
@@ -334,6 +361,8 @@ class SportsBagService extends Service
|
|
|
public function orderRule(&$data, $user, $is_check = true){
|
|
|
if(empty($data['title'])) return [false,'请填写活动名称'];
|
|
|
if(empty($data['sports_bag_time'][0]) || empty($data['sports_bag_time'][1])) return [false,'请填写活动时间范围'];
|
|
|
+ if(empty($data['is_attribute'])) return [false, '请选择销售属性|采购属性'];
|
|
|
+ if(empty($data['purchase_attribute'])) return [false, '请选择销售属性|采购属性对应的数据'];
|
|
|
$data['start_time'] = $this->changeDateToDateMin($data['sports_bag_time'][0]);
|
|
|
$data['end_time'] = $this->changeDateToDateMin($data['sports_bag_time'][1]);
|
|
|
if(empty($data['number'])) return [false,'必选产品种数不能为空'];
|
|
@@ -361,4 +390,31 @@ class SportsBagService extends Service
|
|
|
|
|
|
return [true, ''];
|
|
|
}
|
|
|
+
|
|
|
+ public function checkSportsBag($id = []){
|
|
|
+ if(empty($id)) return [true, ''];
|
|
|
+
|
|
|
+ $now = time();
|
|
|
+ $bag = SportsBag::whereIn('id',$id)
|
|
|
+ ->select('id','title','start_time','end_time','state','del_time')
|
|
|
+ ->get()->toArray();
|
|
|
+
|
|
|
+ $return = [];
|
|
|
+ foreach ($bag as $value){
|
|
|
+ if($value['del_time'] > 0){
|
|
|
+ $return[] = "活动包" . $value['title'] ."已删除或不存在";
|
|
|
+ }elseif($value['state'] < SportsBag::STATE_TWO){
|
|
|
+ $return[] = "活动包" . $value['title'] ."审核未通过";
|
|
|
+ }elseif($now >= $value['start_time'] && $now <= $value['end_time']){
|
|
|
+ $return[] = "活动包" . $value['title'] ."未在活动时间内,请稍等";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(! empty($return)){
|
|
|
+ $msg = implode(' | ', $return);
|
|
|
+ return [false, $msg];
|
|
|
+ }
|
|
|
+
|
|
|
+ return [true, ''];
|
|
|
+ }
|
|
|
}
|