addBehavior( new SoftDelete([ 'field' => 'deleted', 'value' => 1, ]) ); } public function beforeCreate() { $this->create_time = time(); } public function beforeUpdate() { $this->update_time = time(); } public function beforeSave() { if (is_array($this->item_info) || is_object($this->item_info)) { $this->item_info = kg_json_encode($this->item_info); } if (is_array($this->schedules) || is_object($this->schedules)) { $this->schedules = kg_json_encode($this->schedules); } } public function afterCreate() { $cache = new MaxFlashSaleIdCache(); $cache->rebuild(); } public function afterFetch() { if (is_string($this->item_info)) { $this->item_info = json_decode($this->item_info, true); } if (is_string($this->schedules)) { $this->schedules = json_decode($this->schedules, true); } } public static function itemTypes() { return [ self::ITEM_COURSE => '课程', self::ITEM_PACKAGE => '套餐', self::ITEM_VIP => '会员', ]; } public static function schedules() { $result = []; foreach (range(8, 20, 2) as $hour) { $result[] = [ 'name' => sprintf('%02d点', $hour), 'hour' => sprintf('%02d', $hour), 'start_time' => sprintf('%02d:%02d:%02d', $hour, 0, 0), 'end_time' => sprintf('%02d:%02d:%02d', $hour + 1, 59, 59) ]; } return $result; } }