You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
4.9 KiB
143 lines
4.9 KiB
<?php |
|
/** |
|
* @link:http://www.zjhejiang.com/ |
|
* @copyright: Copyright (c) 2018 浙江禾匠信息科技有限公司 |
|
* |
|
* Created by PhpStorm. |
|
* User: 风哀伤 |
|
* Date: 2018/7/13 |
|
* Time: 11:27 |
|
*/ |
|
|
|
namespace app\plugins\bargain\models; |
|
|
|
|
|
use app\models\Model; |
|
|
|
/** |
|
* @property \app\models\Goods $goods |
|
* @property \app\models\BargainGoods $bargain |
|
*/ |
|
class GoodsForm extends Model |
|
{ |
|
public $goods; |
|
public $bargain; |
|
|
|
public $people; |
|
public $human; |
|
public $min_price; |
|
public $begin_time; |
|
public $end_time; |
|
public $time; |
|
public $status; |
|
public $first_min_money; |
|
public $first_max_money; |
|
public $second_min_money; |
|
public $second_max_money; |
|
|
|
public function rules() |
|
{ |
|
return [ |
|
[['people', 'human', 'status', 'min_price', 'begin_time', 'end_time', 'time', 'first_min_money', 'first_max_money', 'second_min_money', 'second_max_money'], 'trim'], |
|
[['human', 'min_price', 'begin_time', 'end_time', 'time', 'first_min_money', 'first_max_money', 'second_min_money', 'second_max_money'], 'required'], |
|
[['people', 'human', 'status', 'time'], 'integer', 'min' => 0], |
|
[['min_price','first_min_money', 'first_max_money', 'second_min_money', 'second_max_money',], 'number', 'min' => 0, 'max' => 99999999], |
|
[['people', 'status'], 'default', 'value' => 0], |
|
]; |
|
} |
|
|
|
public function attributeLabels() |
|
{ |
|
return [ |
|
'people' => '参与人数', |
|
'human' => '人数', |
|
'min_price' => '最低价', |
|
'begin_time' => '开始时间', |
|
'end_time' => '结束时间', |
|
'time' => '砍价时间', |
|
'status' => '砍价方式', |
|
'first_min_money' => '价格波动值', |
|
'first_max_money' => '价格波动值', |
|
'second_max_money' => '价格波动值', |
|
'second_min_money' => '价格波动值', |
|
]; |
|
} |
|
|
|
public function save() |
|
{ |
|
if (!$this->validate()) { |
|
return $this->getErrorResponse(); |
|
} |
|
|
|
if ($this->bargain->isNewRecord) { |
|
$this->bargain->is_delete = 0; |
|
$this->bargain->addtime = time(); |
|
$this->bargain->goods_id = $this->goods->id; |
|
$this->bargain->store_id = $this->goods->store_id; |
|
} |
|
$this->bargain->min_price = $this->min_price; |
|
$this->bargain->begin_time = strtotime($this->begin_time); |
|
$this->bargain->end_time = strtotime($this->end_time); |
|
if($this->bargain->end_time < strtotime(date('Y-m-d H:i',time()))){ |
|
return [ |
|
'code'=>1, |
|
'msg'=>'结束时间不能小于今天' |
|
]; |
|
} |
|
if($this->bargain->begin_time > $this->bargain->end_time){ |
|
return [ |
|
'code'=>1, |
|
'msg'=>'开始时间不能大于结束时间' |
|
]; |
|
} |
|
$this->bargain->time = $this->time; |
|
$this->bargain->status = $this->status; |
|
if ($this->people > 0 && $this->people < 2) { |
|
return [ |
|
'code' => 1, |
|
'msg' => '若填写参与人数,参与人数必须大于1' |
|
]; |
|
} |
|
$status_data = [ |
|
'people' => $this->people, |
|
'human' => $this->human, |
|
'first_min_money' => $this->first_min_money, |
|
'first_max_money' => $this->first_max_money, |
|
'second_min_money' => $this->second_min_money, |
|
'second_max_money' => $this->second_max_money |
|
]; |
|
$this->bargain->status_data = \Yii::$app->serializer->encode($status_data); |
|
if ($this->bargain->save()) { |
|
return [ |
|
'code' => 0, |
|
'msg' => '保存成功' |
|
]; |
|
} else { |
|
return $this->getErrorResponse($this->bargain); |
|
} |
|
|
|
|
|
} |
|
|
|
public function search() |
|
{ |
|
$bargain = $this->bargain; |
|
$newList = []; |
|
if ($bargain) { |
|
$newList['min_price'] = $bargain->min_price; |
|
$newList['begin_time'] = $bargain->beginTimeText; |
|
$newList['end_time'] = $bargain->endTimeText; |
|
$newList['time'] = $bargain->time; |
|
$newList['status'] = $bargain->status; |
|
$statusData = $bargain->status_data ? \Yii::$app->serializer->decode($bargain->status_data) : ''; |
|
$newList['people'] = $statusData->people; |
|
$newList['human'] = $statusData->human; |
|
$newList['first_min_money'] = $statusData->first_min_money; |
|
$newList['first_max_money'] = $statusData->first_max_money; |
|
$newList['second_min_money'] = $statusData->second_min_money; |
|
$newList['second_max_money'] = $statusData->second_max_money; |
|
} |
|
return $newList; |
|
} |
|
|
|
} |