GroupCodeDayLogModel.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace Yunshop\GroupCode\models;
  3. use app\common\models\BaseModel;
  4. use Illuminate\Support\Facades\DB;
  5. /**
  6. * Author: 芸众商城 www.yunzshop.com
  7. * Date: 2017/9/23
  8. * Time: 上午9:59
  9. */
  10. class GroupCodeDayLogModel extends BaseModel
  11. {
  12. public $table = 'yz_group_code_day_log';
  13. public $timestamps = true;
  14. protected $guarded = [''];
  15. public function groupCode()
  16. {
  17. return $this->belongsTo('Yunshop\GroupCode\models\GroupCodeModel','group_id','id');
  18. }
  19. public static function getStatisticList($search = [])
  20. {
  21. $model = self::uniacid();
  22. $model->select('group_id','date_day','total_count','new_count','cumulative','cumulative_new');
  23. $model->with('groupCode:id,code_name');
  24. if(isset($search['group_id']) && is_numeric($search['group_id'])){
  25. $model->where('group_id',$search['group_id']);
  26. }
  27. if(!empty($search['code_name'])){
  28. $model->whereHas('groupCode',function ($query) use ($search){
  29. $query->where('code_name','like','%'.$search['code_name'].'%');
  30. });
  31. }
  32. if(!empty($search['time']['start']) && !empty($search['time']['end'])){
  33. $range = [date('Y-m-d',$search['time']['start']), date('Y-m-d',$search['time']['end'])];
  34. $model->whereBetween('date_day', $range);
  35. }
  36. if(empty($search) || $search['order_by'] == 0){
  37. $model->orderBy('date_day', 'desc');
  38. }elseif (!empty($search) && $search['order_by'] == 1){
  39. $model->orderBy('total_count', 'desc');
  40. }else{
  41. $model->orderBy('new_count', 'desc');
  42. }
  43. return $model;
  44. }
  45. //批量插入数据
  46. public function addAllData($data)
  47. {
  48. $res = DB::table($this->getTable())->insert($data);
  49. return $res;
  50. }
  51. }