Regiment.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. $session = session('userRule');
  51. if ($session){
  52. $map[] = ['regiment_active.company_id','=',$session['company_id']];
  53. if ($session['business_id']){
  54. $map[] = ['regiment_active.business_id','=',$session['business_id']];
  55. }
  56. if ($session['menu_type'] == 1 && $session['data_type'] == 2){
  57. $shopIds = Business::query()->where('leader_uid',$session['admin_uid'])->pluck('id')->toArray();
  58. }
  59. }
  60. $select = [
  61. 'regiment.*',
  62. 'regiment_active.name as active_name',
  63. 'regiment_active.business_id as business_id',
  64. 'product.name as product_name',
  65. 'custom.username as username',
  66. ];
  67. // 查询数据
  68. $list = $Model->query()
  69. ->join('regiment_active','regiment_active.id','=','regiment.active_id')
  70. ->join('product','product.id','=','regiment.product_id')
  71. ->leftJoin('custom','custom.uid','=','regiment.custom_uid');
  72. if (isset($shopIds)){
  73. $list = $list->whereIn('regiment_active.business_id',$shopIds);
  74. }
  75. $list = $list->where($map)
  76. ->select($select)
  77. ->orderByDesc('id')
  78. ->paginate(config('page_num',10));
  79. // 循环处理数据
  80. foreach($list as &$v){
  81. $v['product_code'] = $Product->idToCode($v['product_id']);
  82. $v['active_code'] = $RegimentActive->idToCode($v['active_id']);
  83. $v['business_name'] = Business::query()->where([['id','=',$v['business_id']]])->value('name');
  84. if ($v['custom_uid']){
  85. $v['custom_code'] = $Custom->idToCode($v['custom_uid']);
  86. }
  87. }
  88. // 分配数据
  89. $this->assign('empty', '<tr><td colspan="20">~~暂无数据</td></tr>');
  90. $this->assign('list',$list);
  91. // 加载模板
  92. return $this->fetch();
  93. }
  94. }