AskController.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Requests\Api\PostsRequests\AskRequest;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\DB;
  6. class AskController extends BaseController
  7. {
  8. //发起一个咨询
  9. public function createNew(AskRequest $request){
  10. // 验证
  11. $request->validate('createnew');
  12. //
  13. $question = trim($request->question);
  14. if(mb_strlen($question) > 300){
  15. return $this->fail(200016,[],'咨询内容不能超过300字');
  16. }
  17. //
  18. $images = trim($request->images);
  19. $images = trim($images,',');
  20. if(count(explode(',',$images)) > 9){
  21. return $this->fail(200016,[],'咨询图片最大9张');
  22. }
  23. //验证答主
  24. if($request->uid == $request->blogger_user_id){
  25. return $this->fail(200016,[],'不能咨询自己');
  26. }
  27. $blogger = DB::table('blogger')->where('user_id',$request->blogger_user_id)->first();
  28. if(empty($blogger)){
  29. return $this->fail(200016,[],'此答主没有经过认证');
  30. }
  31. if($blogger->status != 1){
  32. return $this->fail(200016,[],'此答主没有经过认证');
  33. }
  34. //
  35. $data = [
  36. 'user_id' => $request->uid,
  37. 'blogger_user_id' => $request->blogger_user_id,
  38. 'question' => $question,
  39. 'images' => $images,
  40. 'createtime' => time(),
  41. 'ask_price' => $blogger->ask_price,
  42. 'sit_price' => $blogger->sit_price,
  43. 'ask_minute' => $blogger->ask_minute,
  44. 'is_hidden' => $request->is_hidden,
  45. 'is_public' => $request->is_public,
  46. ];
  47. DB::table('ask_order')->insert($data);
  48. return $this->success();
  49. }
  50. //评价此次咨询
  51. public function evaluate(AskRequest $request){
  52. // 验证
  53. $request->validate('evaluate');
  54. //
  55. $eva_content = trim($request->eva_content);
  56. if(mb_strlen($eva_content) > 100){
  57. return $this->fail(200016,[],'咨询内容不能超过100字');
  58. }
  59. //
  60. $score = $request->eva_score;
  61. if($score < 0){
  62. $score = 0;
  63. }
  64. if($score > 5){
  65. $score = 5;
  66. }
  67. //
  68. $order_id = _empty_default_($request->order_id,0);
  69. $order = DB::table('ask_order')->where('id',$order_id)->where('user_id',$request->uid)->where('status','>',0)->first();
  70. if(empty($order)){
  71. return $this->fail(200016,[],'没有找到该咨询');
  72. }
  73. if($order->status != 20){
  74. return $this->fail(200016,[],'咨询还没有结束');
  75. }
  76. //
  77. $update = [
  78. 'eva_score' => $request->eva_score,
  79. 'eva_content' => $request->eva_content,
  80. ];
  81. DB::table('ask_order')->where('id',$order_id)->update($update);
  82. }
  83. //答主的主页
  84. //咨询首页
  85. //首页轮播
  86. //推荐答主列表
  87. //某个提问的旁听详情
  88. //我购买的旁听列表
  89. //我发起的咨询
  90. //所有问答列表
  91. //答主的评价列表
  92. //
  93. //
  94. //
  95. //
  96. //
  97. //
  98. //
  99. //
  100. }