StreamController.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. namespace plugin\admin\app\controller;
  3. use Illuminate\Support\Arr;
  4. use support\Request;
  5. use support\Response;
  6. use plugin\admin\app\model\Stream;
  7. use plugin\admin\app\controller\Crud;
  8. use support\exception\BusinessException;
  9. /**
  10. * 用户流水
  11. */
  12. class StreamController extends Crud
  13. {
  14. /**
  15. * @var Stream
  16. */
  17. protected $model = null;
  18. /**
  19. * 构造函数
  20. * @return void
  21. */
  22. public function __construct()
  23. {
  24. $this->model = new Stream;
  25. }
  26. /**
  27. * 浏览
  28. * @return Response
  29. */
  30. public function index(): Response
  31. {
  32. return view('stream/index');
  33. }
  34. public function select(Request $request): Response
  35. {
  36. $param=$request->all();
  37. $data=Stream::query()->where(function ($query)use ($param){
  38. if(is_numeric(Arr::get($param,'money.1')) && is_numeric(Arr::get($param,'money.0'))){
  39. $query->whereBetween('money',[$param['money'][0],$param['money'][1]]);
  40. }elseif (is_numeric(Arr::get($param,'money.0'))){
  41. $query->where('money','>=',$param['money'][0]);
  42. }elseif (is_numeric(Arr::get($param,'money.1'))){
  43. $query->where('money','<=',$param['money'][1]);
  44. }
  45. if(Arr::get($param,'created_at.0') && Arr::get($param,'created_at.1')){
  46. $query->whereBetween('created_at',[$param['created_at'][0],$param['created_at'][1]]);
  47. }elseif (Arr::get($param,'created_at.0')){
  48. $query->where('created_at','>=',$param['created_at'][0]);
  49. }elseif (Arr::get($param,'created_at.1')){
  50. $query->where('created_at','<=',$param['created_at'][1]);
  51. }
  52. if(Arr::get($param,'type')){
  53. $query->where('type',$param['type']);
  54. }
  55. if(Arr::get($param,'mold')){
  56. $query->where('mold',$param['mold']);
  57. }
  58. });
  59. if(Arr::get($param,'mobile') || Arr::get($param,'mobile')){
  60. $data->whereExists(function ($query)use ($param){
  61. $query->from('wa_users')->whereRaw('wa_users.id=wa_stream.user_id');
  62. if(Arr::get($param,'user_name')){
  63. $query->where('name','like','%'.$param['user_name'].'%');
  64. }
  65. if(Arr::get($param,'mobile')){
  66. $query->where('mobile','like','%'.$param['mobile'].'%');
  67. }
  68. });
  69. }
  70. $data=$data->with('userData:id,name,mobile');
  71. if(Arr::get($param,'field')){
  72. $order='asc';
  73. if(Arr::get($param,'order')){
  74. $order='desc';
  75. }
  76. $data=$data->orderBy($param['field'],$order);
  77. }else{
  78. $data=$data->orderByDesc('id');
  79. }
  80. $data=$data->paginate(Arr::get($param,'limit',10))->toArray();
  81. $arr=[];
  82. foreach ($data['data'] as $k=>$v){
  83. $arr[]=[
  84. 'user_name'=>$v['user_data']['name'],
  85. 'user_mobile'=>$v['user_data']['mobile'],
  86. 'money' =>$v['money'],
  87. 'type'=>streamType($v['type']).'--'.moldType($v['mold']),
  88. 'created_at'=>$v['created_at'],
  89. 'total_money'=>$v['total_money']
  90. ];
  91. }
  92. return json(['code' => 0, 'data' => $arr, 'msg' => 'ok','count'=>$data['total']]);
  93. }
  94. /** 流水类型
  95. * @param Response $response
  96. * @return Response
  97. */
  98. public function addselect(Response $response)
  99. {
  100. return json(['code' => 0, 'data' => streamType(), 'msg' => 'ok','count'=>count(streamType())]);
  101. }
  102. /** 钱包类型
  103. * @param Response $response
  104. * @return Response
  105. */
  106. public function addmoldselect(Response $response)
  107. {
  108. return json(['code' => 0, 'data' => moldType(), 'msg' => 'ok','count'=>count(moldType())]);
  109. }
  110. }