AffiliateController.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\ReferralApply;
  5. use App\Models\ReferralLog;
  6. use Illuminate\Http\JsonResponse;
  7. use Illuminate\Http\Request;
  8. use Response;
  9. /**
  10. * 推广控制器
  11. *
  12. * Class AffiliateController
  13. *
  14. * @package App\Http\Controllers\Controller
  15. */
  16. class AffiliateController extends Controller {
  17. // 提现申请列表
  18. public function affiliateList(Request $request): \Illuminate\Http\Response {
  19. $email = $request->input('email');
  20. $status = $request->input('status');
  21. $query = ReferralApply::with('user');
  22. if(isset($email)){
  23. $query->whereHas('user', static function($q) use ($email) {
  24. $q->where('email', 'like', '%'.$email.'%');
  25. });
  26. }
  27. if($status){
  28. $query->whereStatus($status);
  29. }
  30. $view['applyList'] = $query->latest()->paginate(15)->appends($request->except('page'));
  31. return Response::view('admin.affiliate.affiliateList', $view);
  32. }
  33. // 提现申请详情
  34. public function affiliateDetail(Request $request): \Illuminate\Http\Response {
  35. $id = $request->input('id');
  36. $list = null;
  37. $apply = ReferralApply::query()->with(['user'])->whereId($id)->first();
  38. if($apply && $apply->link_logs){
  39. $list = ReferralLog::query()
  40. ->with(['user', 'order.goods'])
  41. ->whereIn('id', $apply->link_logs)
  42. ->paginate(15)
  43. ->appends($request->except('page'));
  44. }
  45. $view['info'] = $apply;
  46. $view['list'] = $list;
  47. return Response::view('admin.affiliate.affiliateDetail', $view);
  48. }
  49. // 设置提现申请状态
  50. public function setAffiliateStatus(Request $request): JsonResponse {
  51. $id = $request->input('id');
  52. $status = $request->input('status');
  53. $ret = ReferralApply::query()->whereId($id)->update(['status' => $status]);
  54. if($ret){
  55. // 审核申请的时候将关联的
  56. $referralApply = ReferralApply::findOrFail($id);
  57. if($referralApply && $status == 1){
  58. ReferralLog::query()->whereIn('id', $referralApply->link_logs)->update(['status' => 1]);
  59. }elseif($referralApply && $status == 2){
  60. ReferralLog::query()->whereIn('id', $referralApply->link_logs)->update(['status' => 2]);
  61. }
  62. }
  63. return Response::json(['status' => 'success', 'message' => '操作成功']);
  64. }
  65. // 用户返利流水记录
  66. public function userRebateList(Request $request): \Illuminate\Http\Response {
  67. $email = $request->input('email');
  68. $ref_email = $request->input('ref_email');
  69. $status = $request->input('status');
  70. $query = ReferralLog::query()->with(['user', 'order'])->orderBy('status')->latest();
  71. if(isset($email)){
  72. $query->whereHas('user', static function($q) use ($email) {
  73. $q->where('email', 'like', '%'.$email.'%');
  74. });
  75. }
  76. if(isset($ref_email)){
  77. $query->whereHas('ref_user', static function($q) use ($ref_email) {
  78. $q->where('email', 'like', '%'.$ref_email.'%');
  79. });
  80. }
  81. if(isset($status)){
  82. $query->whereStatus($status);
  83. }
  84. $view['list'] = $query->paginate(15)->appends($request->except('page'));
  85. return Response::view('admin.affiliate.userRebateList', $view);
  86. }
  87. }