AffiliateController.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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) {
  19. $email = $request->input('email');
  20. $status = $request->input('status');
  21. $query = ReferralApply::with('user:id,email');
  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 view('admin.affiliate.affiliateList', $view);
  32. }
  33. // 提现申请详情
  34. public function affiliateDetail(Request $request) {
  35. $view['basic'] = ReferralApply::with('user:id,email')->find($request->input('id'));
  36. $view['commissions'] = [];
  37. if($view['basic'] && $view['basic']->link_logs){
  38. $view['commissions'] = ReferralLog::with(['invitee:id,email', 'order.goods:id,name'])
  39. ->whereIn('id', $view['basic']->link_logs)
  40. ->paginate(15)
  41. ->appends($request->except('page'));
  42. }
  43. return view('admin.affiliate.affiliateDetail', $view);
  44. }
  45. // 设置提现申请状态
  46. public function setAffiliateStatus(Request $request): JsonResponse {
  47. $id = $request->input('id');
  48. $status = $request->input('status');
  49. $ret = ReferralApply::whereId($id)->update(['status' => $status]);
  50. if($ret){
  51. // 审核申请的时候将关联的
  52. $referralApply = ReferralApply::findOrFail($id);
  53. if($referralApply && $status == 1){
  54. ReferralLog::whereIn('id', $referralApply->link_logs)->update(['status' => 1]);
  55. }elseif($referralApply && $status == 2){
  56. ReferralLog::whereIn('id', $referralApply->link_logs)->update(['status' => 2]);
  57. }
  58. }
  59. return Response::json(['status' => 'success', 'message' => '操作成功']);
  60. }
  61. // 用户返利流水记录
  62. public function userRebateList(Request $request) {
  63. $invitee_email = $request->input('invitee_email');
  64. $inviter_email = $request->input('inviter_email');
  65. $status = $request->input('status');
  66. $query = ReferralLog::with(['invitee:id,email', 'inviter:id,email'])->orderBy('status')->latest();
  67. if(isset($invitee_email)){
  68. $query->whereHas('invitee', static function($q) use ($invitee_email) {
  69. $q->where('email', 'like', '%'.$invitee_email.'%');
  70. });
  71. }
  72. if(isset($inviter_email)){
  73. $query->whereHas('inviter', static function($q) use ($inviter_email) {
  74. $q->where('email', 'like', '%'.$inviter_email.'%');
  75. });
  76. }
  77. if(isset($status)){
  78. $query->whereStatus($status);
  79. }
  80. $view['list'] = $query->paginate(15)->appends($request->except('page'));
  81. return view('admin.affiliate.userRebateList', $view);
  82. }
  83. }