BooksGiftController.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  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\UserGiftService;
  8. use App\Modules\User\Services\UserService;
  9. use Illuminate\Http\Request;
  10. use Hashids;
  11. class BooksGiftController extends BaseController
  12. {
  13. /**
  14. * 获取所有可送礼物
  15. * @return mixed
  16. */
  17. public function getAllGifts() {
  18. $gifts = BookGiftsService::getAllGifts();
  19. $user = UserService::getById($this->uid);
  20. $res = ['gift'=>$gifts,'balance'=>$user->balance];
  21. return response()->success($res);
  22. }
  23. public function getAllGiftsV2() {
  24. $gifts = UserGiftService::getGifts($this->uid);
  25. $balance = 0;
  26. foreach ($gifts as $gift){
  27. $balance = $gift->balance;break;
  28. }
  29. $res = ['gift'=>$gifts,'balance'=>$balance];
  30. return response()->success($res);
  31. }
  32. /**
  33. * 用户打赏图书
  34. * @param Request $request
  35. * @return mixed
  36. */
  37. public function sendGifts(Request $request) {
  38. if(!$this->checkUid()){
  39. return response()->error('WAP_NOT_LOGIN');
  40. }
  41. $uid = $this->uid;
  42. $bid = $request->input('bid','');
  43. if(empty($bid)) {
  44. return response()->error('PARAM_EMPTY');
  45. }
  46. $bid = Hashids::decode($bid)[0];
  47. $gift_id = $request->input('gift_id','');
  48. if(empty($gift_id)){
  49. return response()->error('PARAM_EMPTY');
  50. }
  51. $gift_info = BookGiftsService::getOneGift($gift_id);
  52. if(!$gift_info){
  53. return response()->error('PARAM_ERROR');
  54. }
  55. $icon = $gift_info->icon;
  56. $name_desc = $gift_info->name_desc;
  57. $cost = $gift_info->cost;
  58. $added = BookGiftsService::sendGiftToBook(compact('uid','bid','gift_id','icon','cost','name_desc'));
  59. if(!$added) {
  60. return response()->error('WAP_SEND_GIFT_FAILED');
  61. }
  62. return response()->success($added);
  63. }
  64. public function sendGiftsV2(Request $request) {
  65. if(!$this->checkUid()){
  66. return response()->error('WAP_NOT_LOGIN');
  67. }
  68. $uid = $this->uid;
  69. $bid = $request->input('bid','');
  70. if(empty($bid)) {
  71. return response()->error('PARAM_EMPTY');
  72. }
  73. $bid = Hashids::decode($bid)[0];
  74. $gift_id = $request->input('gift_id','');
  75. if(empty($gift_id)){
  76. return response()->error('PARAM_EMPTY');
  77. }
  78. $gift_info = BookGiftsService::getOneGift($gift_id);
  79. if(!$gift_info){
  80. return response()->error('PARAM_ERROR');
  81. }
  82. $result = UserGiftService::sendGiftToBook($uid,$gift_id,$bid,$gift_info);
  83. if(!$result){
  84. return response()->error('WAP_SEND_GIFT_FAILED');
  85. }
  86. return response()->success();
  87. }
  88. /**
  89. * 获取送礼记录
  90. * @param Request $request
  91. * @return mixed
  92. */
  93. public function getUserSendGiftsRecord(Request $request) {
  94. if(!$this->checkUid()){
  95. return response()->error('WAP_NOT_LOGIN');
  96. }
  97. $uid = $this->uid;
  98. $bid = $request->input('bid','');
  99. if(empty($bid)) {
  100. return response()->error('PARAM_EMPTY');
  101. }
  102. $bid = Hashids::decode($bid)[0];
  103. $records = BookGiftsService::getSendRecords($bid);
  104. return response()->pagination(new BookGiftsTransformer(), $records);
  105. }
  106. /**
  107. * @param Request $request
  108. * @return mixed
  109. */
  110. public function getSendGiftsForConsumeRecord(Request $request){
  111. if(!$this->checkUid()){
  112. return response()->error('WAP_NOT_LOGIN');
  113. }
  114. $uid = $this->uid;
  115. $records = BookGiftsService::getConsumeSendRecords($uid);
  116. return response()->pagination(new BookGiftsTransformer(),$records);
  117. }
  118. /**
  119. * @param Request $request
  120. * @return mixed
  121. */
  122. public function getUserSendGiftsRecordV2(Request $request) {
  123. if(!$this->checkUid()){
  124. return response()->error('WAP_NOT_LOGIN');
  125. }
  126. $uid = $this->uid;
  127. $bid = $request->input('bid','');
  128. if(empty($bid)) {
  129. return response()->error('PARAM_EMPTY');
  130. }
  131. $bid = Hashids::decode($bid)[0];
  132. $records = BookGiftsService::getSendRecordsV2($bid);
  133. return response()->success(['records'=>collectionTransform(new BookGiftsTransformer(), $records['record']),'rank'=>$records['rank']]);
  134. }
  135. }