AffiliateController.php 3.2 KB

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