messageRule = $messageRule; } /** * 内容列表 */ public function lists($request) { $perPage = isset($request['per_page']) ? $request['per_page'] : 20; $where = []; if(isset($request['title'])){ $where[] = ['title', 'like', "%{$request['title']}%"]; } if(isset($request['message_type'])){ $where[] = ['message_type', $request['message_type']]; } return $this->messageRule ->where($where) ->orderBy('id','desc') ->paginate($perPage); } /** * 创建消息规则 */ public function create($request) { $noticeGroups = explode(',', $request['notice_groups']); if(in_array(0, $noticeGroups)){ $noticeGroups = 0; } else { if(array_diff($noticeGroups, [1,2])){ return Response::create([ 'message' => '通知群体参数有误', 'status_code' => 500 ]); } $noticeGroups = implode(',', array_unique($noticeGroups)); } $data = [ 'title' => $request['title'], 'notice_groups' => $noticeGroups, 'message_type' => $request['message_type'], 'activity_url' => $request['activity_url']??'', 'cover' => $request['cover'], 'message_status' => 0, 'send_time' => isset($request['send_time']) && $request['send_time']? $request['send_time']:null, 'activity_time' => $request['activity_time']??'', 'sent_count' => 0, 'open_count' => 0 ]; DB::beginTransaction(); try{ $this->messageRule->create($data); DB::commit(); return Response::create(); }catch (QueryException $exception){ DB::rollBack(); Log::debug('创建消息规则:'.$exception->getMessage()); return Response::create([ 'message' => '添加失败,请重试', 'error' => $exception->getMessage(), 'status_code' => 500 ]); } } }