Regiment.php 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php namespace App\Http\Controllers\Admin;
  2. use App\Models\Business;
  3. use App\Models\Regiment as Model;
  4. use App\Models\Product as Product;
  5. use App\Models\RegimentActive as RegimentActive;
  6. use App\Models\Custom as Custom;
  7. use Illuminate\Support\Facades\DB;
  8. /**
  9. * 团列表
  10. *
  11. * @author jun
  12. *
  13. */
  14. class Regiment extends Auth{
  15. protected function _initialize(){
  16. parent::_initialize();
  17. $this->assign('breadcrumb1','拼团活动');
  18. $this->assign('breadcrumb2','团列表');
  19. }
  20. /**
  21. * 列表页
  22. *
  23. * */
  24. public function index(Model $Model,Product $Product,RegimentActive $RegimentActive,Custom $Custom){
  25. // 接收参数
  26. $code = request('code','');
  27. $name = request('name','');
  28. $productName = request('product_name','');
  29. $status = request('status','');
  30. $start_time = request('start_time','');
  31. $end_time = request('end_time','');
  32. // 查询条件
  33. $map = [];
  34. // 组合条件
  35. if( $name ) $map[] = ['regiment_active.name','=',$name];
  36. if( $code ){
  37. $id = $Model->codeToId($code);
  38. $map[] = ['regiment_active.id','=',$id];
  39. }
  40. if( $productName ) $map[] = ['product.name','=',$productName];
  41. if( $status ) $map[] = ['regiment.status','=',$status];
  42. if( $start_time ) {
  43. $start_time = strtotime($start_time);
  44. $map[] = ['regiment.start_time','>=',$start_time];
  45. }
  46. if( $end_time ) {
  47. $end_time = strtotime($end_time);
  48. $map[] = ['regiment.end_time','<=',$end_time];
  49. }
  50. // 当前登录的角色数据
  51. $session = session('userRule') ? session('userRule') : ['business_id'=>0,'menu_type'=>0,'data_type'=>0];
  52. // 是否存在对应的商业公司ID
  53. if ( $session['business_id'] ) $map[] = ['regiment_active.business_id','=',$session['business_id']];
  54. // 数据类型
  55. $shopIds = ($session['menu_type'] == 1 && $session['data_type'] == 2) ? Business::query()->where('leader_uid',$session['admin_uid'])->pluck('id')->toArray() : [];
  56. $select = [
  57. 'regiment.*',
  58. 'regiment_active.name as active_name',
  59. 'regiment_active.business_id as business_id',
  60. 'product.name as product_name',
  61. 'custom.username as username',
  62. ];
  63. // 查询数据
  64. $list = $Model->query()
  65. ->join('regiment_active','regiment_active.id','=','regiment.active_id')
  66. ->join('product','product.id','=','regiment.product_id')
  67. ->leftJoin('custom','custom.uid','=','regiment.custom_uid');
  68. if ( $shopIds ){
  69. $list = $list->whereIn('regiment_active.business_id',$shopIds);
  70. }
  71. $list = $list->where($map)
  72. ->select($select)
  73. ->orderByDesc('id')
  74. ->paginate(config('page_num',10));
  75. // 循环处理数据
  76. foreach($list as &$v){
  77. $v['product_code'] = $Product->idToCode($v['product_id']);
  78. $v['active_code'] = $RegimentActive->idToCode($v['active_id']);
  79. $v['business_name'] = Business::query()->where([['id','=',$v['business_id']]])->value('name');
  80. if ($v['custom_uid']){
  81. $v['custom_code'] = $Custom->idToCode($v['custom_uid']);
  82. }
  83. }
  84. // 分配数据
  85. $this->assign('empty', '<tr><td colspan="20">~~暂无数据</td></tr>');
  86. $this->assign('list',$list);
  87. // 加载模板
  88. return $this->fetch();
  89. }
  90. }