123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348 |
- <?php
- /**
- * Created by PhpStorm.
- * User: 思维定制
- * Date: 2018/7/12
- * Time: 16:03
- */
- namespace App\Http\Controllers\Api\V1;
- use App\Models\MessagesFollowerModel;
- use App\Models\MessagesInfoModel;
- use App\Models\MessagesTagModel;
- use App\Models\PaymentInfoModel;
- use App\Models\SeenModel;
- use App\Models\UserInfoModel;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Validator;
- use App\Services\Base\ErrorCode;
- class IndexController extends Controller
- {
- /**
- * @api {get} /api/index/tag 筛选标签(indexTag)
- * @apiDescription 筛选标签(indexTag)indexTag
- * @apiGroup Index
- * @apiPermission none
- * @apiVersion 0.1.0
- * @apiParam {string} keywords 关键词
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": [
- * {
- * "id": 1,
- * "name": "标签1",
- * "sort": 1,
- * "deleted_at": null,
- * "created_at": "2018-07-12 17:03:07",
- * "updated_at": "2018-07-12 17:03:11"
- * }
- * ]
- * }
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- */
- public function indexTag(Request $request)
- {
- $keywords = $request->input('keywords');
- $keywords = '%'.$keywords.'%';
- $data = MessagesTagModel::where([['name','like',$keywords]])->get();
- return $this->api($data);
- }
- /**
- * @api {get} /api/index/menu 知识列表(indexMenu)
- * @apiDescription 知识列表(indexMenu)indexMenu
- * @apiGroup Index
- * @apiPermission none
- * @apiVersion 0.1.0
- * @apiParam {string} tag_id 标签ID
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": {
- * "menu": [
- * {
- * "id": 4,
- * "name": "标签4",
- * "sort": 4,
- * "deleted_at": null,
- * "created_at": "2018-07-12 17:04:31",
- * "updated_at": "2018-07-12 17:04:34"
- * }
- * ],
- * "message": {
- * "current_page": 1,
- * "data": [
- * {
- * "id": 1,
- * "title": "爱我的",
- * "type": 0,
- * "owner": "Richod"
- * }
- * ],
- * "first_page_url": "http://zsff.xcx.com/api/index/menu?page=1",
- * "from": 1,
- * "last_page": 1,
- * "last_page_url": "http://zsff.xcx.com/api/index/menu?page=1",
- * "next_page_url": null,
- * "path": "http://zsff.xcx.com/api/index/menu",
- * "per_page": 1,
- * "prev_page_url": null,
- * "to": 1,
- * "total": 1
- * }
- * }
- *}
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- */
- public function indexMenu(Request $request)
- {
- $validator = Validator::make($request->all(),
- [
- 'tag_id' => 'integer'
- ],
- [
- 'tag_id.integer' => '标签参数格式不对!'
- ]
- );
- if ($validator->fails()) {
- return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
- }
- $data = $request->input();
- $menu = MessagesTagModel::orderBy('sort','Desc')->take(3)->get();
- if(!isset($data['tag_id']) || $data['tag_id'] == 0){
- $message = MessagesInfoModel::where('state',0)->select('id','title','type')->orderBy('id','Desc')->paginate(1);
- } else {;
- $message = MessagesTagModel::find($data['tag_id'])->messgaes()->where('state',0)->select('id','title','type')->orderBy('id','Desc')->paginate(1);
- //dd($message);
- }
- foreach ($message as $item){
- $user = UserInfoModel::find($item->user_id);
- if($user){
- $item->owner = $user->nickname;
- }
- }
- return $this->api(compact('menu','message'));
- }
- /**
- * @api {get} /api/index/message 知识详情(indexMessage)
- * @apiDescription 知识详情(indexMenu)indexMessage
- * @apiGroup Index
- * @apiPermission none
- * @apiVersion 0.1.0
- * @apiParam {int} id 知识ID
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": {
- * "message": {
- * "id": 1,
- * "title": "爱我的",
- * "content": "爱我的",
- * "user_id": 1,
- * "price": 0,
- * "phone": "18228068397",
- * "comment": "瓦坎达入口",
- * "type": 0,
- * "sort": 1,
- * "deleted_at": null,
- * "created_at": "2018-07-12 17:06:23",
- * "updated_at": "2018-07-12 17:06:26",
- * "state": 0,
- * "is_pay": "是否需要付费 0 需要付费 1 不需要"
- * }
- * }
- *}
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- */
- public function indexMessage(Request $request)
- {
- $validator = Validator::make($request->all(),
- [
- 'id' => 'required'
- ],
- [
- 'id.required' => 'id不能为空!'
- ]
- );
- if ($validator->fails()) {
- return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
- }
- $id = $request->input('id');
- $message = MessagesInfoModel::where([['state',0],['id',$id]])->first();
- if(!$message){
- $data = [
- 'msg' => '该信息不存在或者已完成'
- ];
- return $this->api($data);
- }
- if($message->type ==0) {
- $user = UserInfoModel::find($this->getUserId());
- $followers['messages_id'] = $message->id;
- $followers['user_id'] = $user->id;
- $followers['username'] = $user->nickname;
- $followers['mobile'] = $user->mobile;
- $followers['state'] = 2;
- MessagesFollowerModel::create($followers);
- }
- if($message->type == 2){
- if($message->user_id != $this->getUserId()) {
- $check_message = MessagesFollowerModel::where([['message_id',$message->id],['user_id',$this->getUserId()],['type',1]])->first();
- if(!$check_message){
- $message->is_pay = 0;
- } else {
- $message->is_pay = 1;
- }
- } else {
- $message->is_pay = 1;
- }
- } else {
- $message->is_pay = '';
- }
- return $this->api(compact('message'));
- }
- /**
- * @api {get} /api/index/get_message 获取知识(indexGetMessage)
- * @apiDescription 获取知识(indexMenu)indexGetMessage
- * @apiGroup Index
- * @apiPermission none
- * @apiVersion 0.1.0
- * @apiParam {int} id 知识ID
- * @apiParam {int} type 知识类型 1 悬赏 2 付费
- * @apiSuccessExample {json} Success-Response:
- * HTTP/1.1 200 OK
- * {
- * "status": true,
- * "status_code": 0,
- * "message": "",
- * "data": {
- * "msg": "获取成功"
- * }
- *}
- * @apiErrorExample {json} Error-Response:
- * HTTP/1.1 400 Bad Request
- * {
- * "state": false,
- * "code": 1000,
- * "message": "传入参数不正确",
- * "data": null or []
- * }
- */
- public function indexGetMessage(Request $request)
- {
- $validator = Validator::make($request->all(),
- [
- 'id' => 'required',
- 'type' => 'required',
- ],
- [
- 'id.required' => 'id不能为空!',
- 'type.required' => 'type不能为空!'
- ]
- );
- if ($validator->fails()) {
- return $this->error(ErrorCode::CLIENT_WRONG_PARAMS, '传入参数不正确!', $validator->messages());
- }
- $id = $request->input('id');
- $type = $request->input('type');
- $message = MessagesInfoModel::where([['id',$id],['type',$type],['state',0]])->first();
- if(!$message){
- $msg = '该信息不存在或者已完成';
- return $this->api(compact('msg'));
- }
- $check_is_buy = MessagesFollowerModel::where([['user_id',$this->getUserId()],['messages_id',$message->id]])->first();
- if($check_is_buy){
- $msg = '您已获取该知识,请勿重复操作';
- return $this->api(compact('msg'));
- }
- $user = UserInfoModel::find($this->getUserId());
- if($type == 2) {
- DB::beginTransaction();
- $out_trade_no = 'We'.date('YmdHis').rand(1000,9999);
- $user->money -= $message->price;
- if($user->money<0){
- $msg = '您的余额已不足,请先充值';
- return $this->api(compact('msg'));
- }
- if(!$user->save()){
- $msg = '购买失败';
- DB::rollback();
- return $this->api(compact('msg'));
- }
- //dd(111);
- $save['openid'] = $user->openid;
- $save['out_trade_no'] = $out_trade_no;
- $save['user_id'] = $this->getUserId();
- $save['to_user'] = $message->user_id;
- $save['price'] = $message->price;
- $save['type'] = 2;
- $res = PaymentInfoModel::create($save);
- if(!$res) {
- $msg = '购买失败';
- DB::rollback();
- return $this->api(compact('msg'));
- }
- }
- $followers['messages_id'] = $message->id;
- $followers['user_id'] = $user->id;
- $followers['username'] = $user->nickname;
- $followers['mobile'] = $user->mobile;
- $followers['state'] = $type == 1?0:1;
- if(MessagesFollowerModel::create($followers)){
- $msg = '获取成功';
- DB::commit();
- } else {
- $msg = '购买失败';
- DB::rollback();
- }
- return $this->api(compact('msg'));
- }
- }
|