CreditController.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: sdf_sky
  5. * Date: 2017/3/4
  6. * Time: 上午12:01
  7. */
  8. namespace App\Http\Controllers\Admin;
  9. use App\Models\Credit;
  10. use App\Models\User;
  11. use Illuminate\Http\Request;
  12. class CreditController extends AdminController
  13. {
  14. public function index(Request $request){
  15. $filter['user_id'] = $request->input('user_id','');
  16. $filter['action'] = $request->input('action','');
  17. $filter['date_range'] = $request->input('date_range','');
  18. $query = Credit::query();
  19. $query->where(function($query){
  20. $query->where('credits','<>',0)
  21. ->orWhere('coins','<>',0);
  22. });
  23. /*充值人过滤*/
  24. if( isset($filter['user_id']) && $filter['user_id'] > 0 ){
  25. $query->where('user_id','=',$filter['user_id']);
  26. }
  27. /*类型过滤*/
  28. if( isset($filter['action']) && $filter['action']){
  29. $query->where('action','=',$filter['action']);
  30. }
  31. /*时间过滤*/
  32. if( isset($filter['date_range']) && $filter['date_range'] ){
  33. $query->whereBetween('created_at',explode(" - ",$filter['date_range']));
  34. }
  35. $credits = $query->orderBy('created_at','desc')->paginate(20);
  36. $credits->map(function($credit){
  37. $credit->actionText = config('tipask.user_actions.'.$credit->action);
  38. });
  39. return view('admin.credit.index')->with(compact('credits','filter'));
  40. }
  41. public function create(){
  42. return view('admin.credit.create');
  43. }
  44. public function store(Request $request){
  45. $validateRule = [
  46. 'user_id' => 'required|integer',
  47. 'action' => 'required|in:reward_user,punish_user',
  48. 'coins' => 'required|integer|min:0',
  49. 'credits' => 'required|integer|min:0'
  50. ];
  51. $request->flash();
  52. $this->validate($request,$validateRule);
  53. $userId = $request->input('user_id',0);
  54. $user = User::find($userId);
  55. if(!$user){
  56. return $this->error(route('admin.credit.create'),'用户不存在,请核实');
  57. }
  58. $action = $request->input('action');
  59. $coins = $request->input('coins');
  60. $credits = $request->input('credits');
  61. if( $action == 'punish_user'){
  62. $credits = intval(-$credits);
  63. $coins = intval(-$coins);
  64. }
  65. $this->credit($userId,$action,$coins,$credits);
  66. return $this->success(route('admin.credit.index'),'充值成功');
  67. }
  68. }