123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348 |
- <?php
- namespace App\Http\Controllers\Manage\Notice;
- use App\Http\Controllers\Controller;
- use App\Http\Controllers\Manage\Notice\Transformers\NoticeSmsTransformer;
- use App\Http\Controllers\Manage\Notice\Transformers\NoticeTransformer;
- use App\Libs\SMS;
- use App\Modules\Channel\Services\ChannelUserService;
- use App\Modules\Notice\Models\Notice;
- use App\Modules\Notice\Services\NoticeService;
- use App\Modules\Notice\Services\NoticeSmsService;
- use Illuminate\Http\Request;
- class NoticesController extends Controller
- {
- /**
- * @apiDefine Notice 公告
- */
- /**
- * @apiVersion 1.0.0
- * @apiDescription 获取公告列表
- * @api {GET} notices 获取公告列表
- * @apiGroup Notice
- * @apiName notices
- * @apiParam {Number} [notice_type_id] 公告分类id.(可不传,不传获取所有分类公告)
- * @apiParam {Number} [status] 状态.0:正常状态; -1:删除 (可不传,不传获取所有分类公告)
- * @apiSuccess {Number} id 公告ID.
- * @apiSuccess {String} is_popup 是否弹出. 0:普通;1:弹框;
- * @apiSuccess {String} title 标题.
- * @apiSuccess {String} content 内容.
- * @apiSuccess {status} status 状态.0:正常状态; -1:删除
- * @apiSuccess {String} updated_time 更新时间.
- * @apiSuccess {String} type_name 类型名称
- * @apiSuccess {Number} type_id 类型ID
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data":
- * {
- * "list":[
- * {
- * "id": "121",
- * "is_popup": "1",
- * "title": "1212-12-12-12",
- * "content": "对不起,我爱你",
- * "status": 0,
- * "updated_time": "2017-12-12 12:12:12"
- * "type_name": "测试类型",
- * "type_id": 1
- * }
- * ],
- * "meta":{
- * "total"=>224,
- * "per_page"=>15,
- * "current_page"=>1,
- * "last_page"=>15,
- * "next_page_url"=>"",
- * "prev_page_url"=>""
- * }
- * }
- * }
- */
- function get_list(Request $request)
- {
- $notice_type_id = $request->has('notice_type_id') ? $request->input('notice_type_id') : '';
- $status = $request->has('status') ? $request->input('status') : '';
- $notices = NoticeService::getAllNoticeList($notice_type_id, $status);
- return response()->pagination(new NoticeTransformer(), $notices);
- }
- /**
- * @apiVersion 1.0.0
- * @apiDescription 获取一个公告
- * @api {get} getNotice 获取一个公告
- * @apiGroup Notice
- * @apiName getNotice
- * @apiParam {Number} id 公告ID.
- * @apiSuccess {String} is_popup 是否弹出. 0:普通;1:弹框;
- * @apiSuccess {String} title 标题.
- * @apiSuccess {String} content 内容.
- * @apiSuccess {status} status 状态.0:正常状态; -1:删除
- * @apiSuccess {String} updated_time 更新时间.
- * @apiSuccess {String} type_name 类型名称
- * @apiSuccess {Number} type_id 类型ID
- * @apiSuccessExample {json} Success-Response:
- * {
- * "code": 0,
- * "msg": "",
- * "data":{
- * "id": "121",
- * "is_popup": "1",
- * "title": "1212-12-12-12",
- * "content": "对不起,我爱你",
- * "status": 0,
- * "updated_time": "2017-12-12 12:12:12"
- * "type_name": "测试类型",
- * "type_id": 1
- * }
- * }
- */
- function get_notice(Request $request)
- {
- $id = $request->has('id') ? $request->input('id') : '';
- if (!is_numeric($id)) {
- return response()->error("PARAM_ERROR");
- }
- $notice = NoticeService::getNotice($id);
- if (empty($notice)) {
- return response()->error("PARAM_ERROR");
- }
- return response()->item(new NoticeTransformer(), $notice);
- }
- /**
- * @apiVersion 1.0.0
- * @apiDescription 添加一个公告
- * @api {POST} addNotice 添加公告
- * @apiGroup Notice
- * @apiName addNotice
- * @apiParam {Number} [notice_type_id] 公告分类id.
- * @apiParam {String} title 公告标题.
- * @apiParam {String} content 公告内容.
- * @apiParam {Number} is_popup 通知方式. 0:普通;1:弹框;
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data":{}
- * }
- */
- function add_notice(Request $request)
- {
- $data = $request->all();
- $title = $request->has('title') ? $request->input('title') : '';
- if (empty($title)) {
- return response()->error("PARAM_EMPTY");
- }
- $content = $request->has('content') ? $request->input('content') : '';
- if (empty($content)) {
- return response()->error("PARAM_EMPTY");
- }
- $notice_type_id = $request->has('notice_type_id') ? $request->input('notice_type_id') : '';
- $data['is_popup'] = 0;
- $data = NoticeService::addNotice($data);
- return response()->success();
- }
- /**
- * @apiVersion 1.0.0
- * @apiDescription 修改一个公告
- * @api {POST} updateNotice 修改一个公告
- * @apiGroup Notice
- * @apiName updateNotice
- * @apiParam {Number} id 公告id.
- * @apiParam {Number} [notice_type_id] 公告分类id.
- * @apiParam {String} title 公告标题.
- * @apiParam {String} content 公告内容.
- * @apiParam {Number} [is_popup] 通知方式.0:普通;1:弹框;
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data":{}
- * }
- */
- function update_notice(Request $request)
- {
- $id = $request->has('id') ? $request->input('id') : '';
- if (!is_numeric($id)) {
- return response()->error("PARAM_ERROR");
- }
- $title = $request->has('title') ? $request->input('title') : '';
- if (empty($title)) {
- return response()->error("PARAM_EMPTY");
- }
- $content = $request->has('content') ? $request->input('content') : '';
- if (empty($content)) {
- return response()->error("PARAM_EMPTY");
- }
- $notice_type_id = $request->has('notice_type_id') ? $request->input('notice_type_id') : '';
- $is_popup = $request->has('is_popup') ? $request->input('is_popup') : '';
- if (!is_numeric($is_popup)) {
- $is_popup = 0;
- }
- $data['is_popup'] = $is_popup;
- $notice = NoticeService::getNotice($id);
- if (empty($notice)) {
- return response()->error("PARAM_ERROR");
- }
- $notice['title'] = $title;
- $notice['content'] = $content;
- $notice['notice_type_id'] = $notice_type_id;
- $notice['is_popup'] = $is_popup;
- $noticeUp = NoticeService::updateNotice($notice);
- return response()->success();
- }
- /**
- * @apiVersion 1.0.0
- * @apiDescription 删除一个公告
- * @api {POST} rmNotice 删除一个公告
- * @apiGroup Notice
- * @apiName rmNotice
- * @apiParam {Number} id 公告id.
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data":{}
- * }
- */
- function rm_notice(Request $request)
- {
- $id = $request->has('id') ? $request->input('id') : '';
- if (!is_numeric($id)) {
- return response()->error("PARAM_ERROR");
- }
- $notice = NoticeService::getNotice($id);
- if (empty($notice)) {
- return response()->error("PARAM_ERROR");
- }
- $notice['status'] = -1;
- $noticeUp = NoticeService::updateNotice($notice);
- return response()->success();
- }
- /**
- * @apiVersion 1.0.0
- * @apiDescription 发送短信通知
- * @api {POST} noticeSms 发送短信通知
- * @apiGroup Notice
- * @apiName noticeSms
- * @apiParam {String} phones 公告标题.多个用小写逗号分开 13245677654,13256778989,
- * @apiParam {String} content 公告内容.
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data":{}
- * }
- */
- function send_sms(Request $request)
- {
- $content = $request->has('content') ? $request->input('content') : '';
- if (empty($content)) {
- return response()->error("PARAM_ERROR");
- }
- $phoneInput = $request->has('phones') ? $request->input('phones') : '';
- if (empty($phoneInput)) {
- return response()->error("PARAM_ERROR");
- }
- if ($phoneInput == 'all') {
- $isEnabled = 1;
- $params = [
- 'is_enabled' => $isEnabled,
- ];
- $result = ChannelUserService::getChannelList($params, true);
- foreach ($result as $rr) {
- $phone = $rr->phone;
- if (!empty($phone) && strlen($phone) > 10 && strlen($phone) < 15) {
- $code = SMS::send($phone, $content);
- if ($code && $code == 1) {
- //成功
- } else {
- }
- }
- }
- } else {
- $phones = '';
- if ($phoneInput) {
- $phones = explode(',', $phoneInput);
- }
- if (empty($phones) || count($phones) == 0) {
- return response()->error("PARAM_ERROR");
- }
- foreach ($phones as $p) {
- if (!empty($p) && strlen($p) > 10 && strlen($p) < 15) {
- $code = SMS::send($p, $content);
- if ($code && $code == 1) {
- //成功
- } else {
- }
- }
- }
- }
- $dataSms['phons'] = $phoneInput;
- $dataSms['content'] = $content;
- $data = NoticeSmsService::addNoticeSms($dataSms);
- return response()->success($data);
- }
- /**
- * @apiVersion 1.0.0
- * @apiDescription 短信通知列表
- * @api {POST} noticeSmsList 短信通知列表
- * @apiGroup Notice
- * @apiName noticeSmsList
- * @apiParam {String} phones 公告标题.多个用小写逗号分开 13245677654,13256778989,
- * @apiParam {String} content 公告内容.
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data":{}
- * }
- */
- function send_sms_list(Request $request)
- {
- $data = NoticeSmsService::getNoticeSms();
- return response()->pagination(new NoticeSmsTransformer(), $data);
- }
- function getNoticeContent(Request $request)
- {
- $content = $request->has('content') ? $request->input('content') : '';
- if (empty($content)) {
- return response()->error("PARAM_EMPTY");
- }
- $content = Notice::getReplyConent($content);
- return response()->success(compact('content'));
- }
- }
|