12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- namespace Modules\System\Models;
- class Notices extends BaseModel
- {
- protected $table = 'notices';
- protected $fillable = [
- 'id', 'title', 'content', 'notice_type_id', "sort", 'type', 'notice_obj', 'is_popup', 'is_deleted', 'created_at', 'updated_at', 'deleted_at',
- ];
- /**
- * @var array
- */
- protected array $fields = ['id', 'title', 'content', "sort", 'notice_type_id', 'type', 'notice_obj', 'is_popup', 'created_at', 'updated_at'];
- /**
- * @var array
- */
- protected array $form = ['title', 'content', 'notice_type_id',"sort", 'type', 'notice_obj', 'is_popup'];
- protected $casts = ['notice_obj' => 'array'];
- public array $searchable = [
- 'title' => 'like',
- 'notice_type_id' => '=',
- 'type' => '=',
- ];
- protected string $sortField = 'sort';
- /**
- * 添加通知
- * @param array $data
- * @return bool
- * @throws \ReflectionException
- */
- public function storeBy(array $data): mixed
- {
- $result = '';
- $this->beginTransaction();
- try {
- $result = $this->create($this->filterData($data));
- if (isset($data['user_ids']) && !empty($data['user_ids'])) {
- $this->addUserNotice($data['user_ids'], $result->id);
- }
- $this->commit();
- } catch (\Exception $exception) {
- $this->rollback();
- }
- return $result->id ?? 0;
- }
- private function addUserNotice(mixed $userIds, mixed $id)
- {
- $list = [];
- foreach ($userIds as $val) {
- $list[] = ['user_id' => $val, 'notice_id' => $id];
- }
- if (!empty($list)) {
- UserNotice::insert($list);
- }
- return true;
- }
- }
|