123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?php
- declare (strict_types=1);
- namespace app\common\model\ms;
- use app\common\model\Goods;
- use app\common\model\GoodsSku;
- use app\common\model\BaseModel;
- /**
- * 活动中心 ▸ 秒杀活动商品
- * Class Ad
- * @package app\common\model
- */
- class MsActivityGood extends BaseModel
- {
-
- protected $name = 'ms_activity_goods';
- protected $append = ['status'];
- //商品状态 即将开始或已结束
- public function getStatusAttr() {
- $now = date("Y-m-d H:i:s",time());
- if ($now < $this->start_time) {
- $d = Date("d",time());
- // 2022-01-01 15:00:00;
- if($d==substr($this->start_time,8,2)){
- return [1,substr($this->start_time,11,5).'开始秒杀'];
- }else{
- return [2,'即将开始'];
- }
- }
- if ($now > $this->end_time) {
- return [3,'秒杀结束'];
- }
- if($now>$this->start_time&&$now<$this->end_time){
- return [4,'秒杀中'];
- }
- return [0,''];
- }
- /**
- * 一对多关联商品表
- */
- public function activity(){
- return $this->belongsTo('MsActivity', 'id','activity_id');
- }
- public function add($activity_id, $data){
- // 先删除全部
- static::deleteAll(['ms_activity_id' => $activity_id]);
- if (!empty($data)) {
- // 添加
- $dataset = [];
- foreach ($data as $item) {
- // 商品信息
-
- $goodsInfo = Goods::detail($item['goods_id'],['images.file']);
- if (empty($goodsInfo)) {
- $this->error = "商品信息错误";
- return false;
- }
- // $goodsSku = GoodsSku::detail($item['goods_id'], $item['goods_sku_id']);
- if($item['ms_price']>$goodsInfo['goods_price_min']){
- $this->error = '秒杀价不能大于商品价格';
- return false;
- }
- // $goodsSku = GoodsSku::detail($item['goods_id'], $item['goods_sku_id']);
- // if (empty($goodsSku)) {
- // $this->error = "商品sku信息错误";
- // return false;
- // }
- $start_time = trim($item['start_time'], '"');
-
- $start_time = str2time_date_format($start_time);
- $end_time = trim($item['end_time'], '"');
-
- $end_time = str2time_date_format($end_time);
- $dataset[] = [
- 'ms_activity_id' => $activity_id,
- 'goods_id' => $item['goods_id'],
- 'goods_sku_id' => $item['goods_sku_id'],
- 'ms_price' => $item['ms_price'],
- 'goods_price' => $goodsInfo['goods_price_min'],
- 'limit_mount' => $item['limit_mount']??0,
- 'stock_num' => $item['stock_num'],
- 'limit_stock'=>$item['stock_num'],
- 'goods_sku_no' => $goodsInfo['goods_no'],
- 'start_time' => Date("Y-m-d H:i:s",$start_time),
- 'end_time' => Date("Y-m-d H:i:s",$end_time),
- 'goods_name' => $goodsInfo['goods_name']??'',
- 'preview_url' => $goodsInfo['images'][0]['file']['preview_url']??'',
- ];
- }
- (new static)->addAll($dataset);
- return true;
- }
- }
- }
|