| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | <?phpnamespace Modules\Channel\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;    }}
 |