Course.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Models\Answer;
  4. use App\Models\CourseChapter;
  5. use App\Models\CourseLabel;
  6. use App\Models\Order;
  7. use App\Models\ProblemRecommend;
  8. use App\Models\UsefulCount;
  9. use App\Models\UserCourse;
  10. use App\Services\ProblemService;
  11. use App\Services\ToolsServices;
  12. use App\Services\UserService;
  13. use Illuminate\Http\Request;
  14. use Illuminate\Support\Facades\Cache;
  15. use Illuminate\Support\Facades\DB;
  16. use Yansongda\LaravelPay\Facades\Pay;
  17. class Course
  18. {
  19. public static function getNewCourse(Request $request)
  20. {
  21. $id = Cache::get($request->header('token'));
  22. $list = \App\Models\Course::getList(1,6);
  23. $list = \App\Models\Course::isPay($list,$id);
  24. return ToolsServices::returnAdmin(0,$list);
  25. }
  26. public static function getCourseList(Request $request)
  27. {
  28. $id = Cache::get($request->header('token'));
  29. $list = \App\Models\Course::getPayCountList(1,6);
  30. $list = \App\Models\Course::isPay($list,$id);
  31. return ToolsServices::returnAdmin(0,$list);
  32. }
  33. public static function getGuessList(Request $request)
  34. {
  35. $id = Cache::get($request->header('token'));
  36. $labelList = UserCourse::getLabel(1,6,$id);
  37. $list = [];
  38. if (!empty($labelList)){
  39. $label = array_unique(array_column($labelList,'one_level_label'));
  40. if (!empty($label)){
  41. $list = \App\Models\Course::getListByLabel(1,6,$label);
  42. }else{
  43. $list = \App\Models\Course::getPayCountList(1,6);
  44. }
  45. }
  46. $list = \App\Models\Course::isPay($list,$id);
  47. return ToolsServices::returnAdmin(0,$list);
  48. }
  49. public static function getCourseListByLabel(Request $request)
  50. {
  51. $id = Cache::get($request->header('token'));
  52. $where = [];
  53. $oneLabel = $request->post('one_label','all');
  54. if ($oneLabel != 'all'){
  55. $where = ['one_level_label'=>$oneLabel];
  56. }
  57. $tow_label = $request->post('tow_label','all');
  58. if ($tow_label != 'all'){
  59. $where = ['tow_level_label'=>$tow_label];
  60. }
  61. $list = \App\Models\Course::getCourse(1,6,$where);
  62. $list = \App\Models\Course::isPay($list,$id);
  63. return ToolsServices::returnAdmin(0,$list);
  64. }
  65. public static function getCourseChapter(Request $request)
  66. {
  67. $id = Cache::get($request->header('token'));
  68. $course = $request->post('course_id');
  69. if (!UserCourse::getOne($id,$course)){
  70. return ToolsServices::error('请先领取');
  71. }
  72. $list = CourseChapter::getList(['course_id'=>$id,'status'=>0]);
  73. return ToolsServices::returnAdmin(0,$list);
  74. }
  75. public static function receive(Request $request)
  76. {
  77. $id = Cache::get($request->header('token'));
  78. $course_id = $request->post('course_id');
  79. $course = \App\Models\Course::getOne(['id'=>$course_id]);
  80. if ($course['current_price'] == 0){
  81. UserCourse::insertData(['user_id'=>$id,'course_id'=>$course_id]);
  82. return ToolsServices::returnAdmin(0,[]);
  83. }else{
  84. $info = UserService::getUserInfoByUserId($id);
  85. $orderId = 'XL-'.time().'-'.mt_rand(1000,9999);
  86. $orderInfo = [
  87. 'user_id' => $id,
  88. 'out_trade_no' => $orderId,
  89. 'total_fee' => $course['current_price'],
  90. 'type' => 1,
  91. 'object_id'=>$course_id
  92. ];
  93. Order::insertData($orderInfo);
  94. $order = [
  95. 'openid' => $info["openid"],
  96. 'out_trade_no' => $orderId,
  97. 'total_fee' => $course['current_price'], // **单位:分**
  98. 'body' => "订阅",
  99. ];
  100. $result = Pay::wechat()->miniapp($order)->toArray();
  101. return ToolsServices::returnAdmin(0, $result);
  102. }
  103. }
  104. public static function labelList(Request $request)
  105. {
  106. $list = CourseLabel::getList();
  107. return ToolsServices::returnAdmin(0,$list);
  108. }
  109. }