BooksGiftController.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace App\Http\Controllers\Wap\Book;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Controllers\Wap\BaseController;
  5. use App\Http\Controllers\Wap\Book\Transformers\BookGiftsTransformer;
  6. use App\Modules\Book\Services\BookGiftsService;
  7. use App\Modules\User\Services\UserService;
  8. use Illuminate\Http\Request;
  9. use Hashids;
  10. class BooksGiftController extends BaseController
  11. {
  12. /**
  13. * 获取所有可送礼物
  14. * @return mixed
  15. */
  16. public function getAllGifts() {
  17. $gifts = BookGiftsService::getAllGifts();
  18. $user = UserService::getById($this->uid);
  19. $res = ['gift'=>$gifts,'balance'=>$user->balance];
  20. return response()->success($res);
  21. }
  22. /**
  23. * 用户打赏图书
  24. * @param Request $request
  25. * @return mixed
  26. */
  27. public function sendGifts(Request $request) {
  28. if(!$this->checkUid()){
  29. return response()->error('WAP_NOT_LOGIN');
  30. }
  31. $uid = $this->uid;
  32. $bid = $request->input('bid','');
  33. if(empty($bid)) {
  34. return response()->error('PARAM_EMPTY');
  35. }
  36. $bid = Hashids::decode($bid)[0];
  37. $gift_id = $request->input('gift_id','');
  38. if(empty($gift_id)){
  39. return response()->error('PARAM_EMPTY');
  40. }
  41. $gift_info = BookGiftsService::getOneGift($gift_id);
  42. if(!$gift_info){
  43. return response()->error('PARAM_ERROR');
  44. }
  45. $icon = $gift_info->icon;
  46. $name_desc = $gift_info->name_desc;
  47. $cost = $gift_info->cost;
  48. $added = BookGiftsService::sendGiftToBook(compact('uid','bid','gift_id','icon','cost','name_desc'));
  49. if(!$added) {
  50. return response()->error('WAP_SEND_GIFT_FAILED');
  51. }
  52. return response()->success($added);
  53. }
  54. /**
  55. * 获取送礼记录
  56. * @param Request $request
  57. * @return mixed
  58. */
  59. public function getUserSendGiftsRecord(Request $request) {
  60. if(!$this->checkUid()){
  61. return response()->error('WAP_NOT_LOGIN');
  62. }
  63. $uid = $this->uid;
  64. $bid = $request->input('bid','');
  65. if(empty($bid)) {
  66. return response()->error('PARAM_EMPTY');
  67. }
  68. $bid = Hashids::decode($bid)[0];
  69. $records = BookGiftsService::getSendRecords($bid);
  70. return response()->pagination(new BookGiftsTransformer(), $records);
  71. }
  72. /**
  73. * @param Request $request
  74. * @return mixed
  75. */
  76. public function getSendGiftsForConsumeRecord(Request $request){
  77. if(!$this->checkUid()){
  78. return response()->error('WAP_NOT_LOGIN');
  79. }
  80. $uid = $this->uid;
  81. $records = BookGiftsService::getConsumeSendRecords($uid);
  82. return response()->pagination(new BookGiftsTransformer(),$records);
  83. }
  84. /**
  85. * @param Request $request
  86. * @return mixed
  87. */
  88. public function getUserSendGiftsRecordV2(Request $request) {
  89. if(!$this->checkUid()){
  90. return response()->error('WAP_NOT_LOGIN');
  91. }
  92. $uid = $this->uid;
  93. $bid = $request->input('bid','');
  94. if(empty($bid)) {
  95. return response()->error('PARAM_EMPTY');
  96. }
  97. $bid = Hashids::decode($bid)[0];
  98. $records = BookGiftsService::getSendRecordsV2($bid);
  99. return response()->success(['records'=>collectionTransform(new BookGiftsTransformer(), $records['record']),'rank'=>$records['rank']]);
  100. }
  101. }