getFilter($params); $actTable = str_replace([1,2,3,4,5,9],['group_buy_activity','kj_activity','activity_discount','mj_send_activity','full_send_activity','ms_activity'], $params['act_type']); if($params['act_type']==10){ $actTable = 'group_buy_lb_activity'; } if ($params['act_type'] == 1) { // 拼团 $query = self::alias('stat') ->leftJoin("{$actTable} act",'act.id=stat.act_id') ->leftJoin('group_buy_goods gg','act.id=gg.group_buy_activity_id') ->leftJoin('goods', 'goods.goods_id=gg.goods_id') ->where($filter) ->where('gg.goods_id', '>', 0) ->field("stat.act_id,act.name as act_name,gg.goods_name,goods.goods_no,act.start_time,act.end_time,stat.act_type,sum(stat.pv) as pv,sum(stat.uv) as uv,sum(stat.uv_new) as uv_new, sum(stat.pay_order_count) as pay_order_count,sum(stat.pay_user_count) as pay_user_count, sum(stat.pay_amount) as pay_amount,convert((stat.pay_user_count/stat.uv)*100,decimal(10,2)) as ratio") ->group('stat.act_id')->order('stat.act_id', 'desc'); } elseif ($params['act_type'] == 10){ //拼团裂变 $query = self::alias('stat') ->leftJoin("{$actTable} act",'act.id=stat.act_id') ->leftJoin('group_buy_lb_goods gg','act.id=gg.group_buy_lb_activity_id') ->leftJoin('goods', 'goods.goods_id=gg.goods_id') ->where($filter) ->where('gg.goods_id', '>', 0) ->field("stat.act_id,act.name as act_name,gg.goods_name,goods.goods_no,act.start_time,act.end_time,stat.act_type,sum(stat.pv) as pv,sum(stat.uv) as uv,sum(stat.uv_new) as uv_new, sum(stat.pay_order_count) as pay_order_count,sum(stat.pay_user_count) as pay_user_count, sum(stat.pay_amount) as pay_amount,convert((stat.pay_user_count/stat.uv)*100,decimal(10,2)) as ratio") ->group('stat.act_id')->order('stat.act_id', 'desc'); } elseif ($params['act_type']==9){ //秒杀 $query = self::alias('stat') ->leftJoin("{$actTable} act",'act.id=stat.act_id') // ->leftJoin('ms_activity_goods gg','act.id=gg.ms_activity_id') // ->leftJoin('goods', 'goods.goods_id=gg.goods_id') ->where($filter) // ->where('gg.goods_id', '>', 0) ->field("stat.act_id,act.name as act_name,act.start_time,act.end_time,stat.act_type,sum(stat.pv) as pv,sum(stat.uv) as uv,sum(stat.uv_new) as uv_new, sum(stat.pay_order_count) as pay_order_count,sum(stat.pay_user_count) as pay_user_count, sum(stat.pay_amount) as pay_amount,convert((stat.pay_user_count/stat.uv)*100,decimal(10,2)) as ratio") ->group('stat.act_id')->order('stat.act_id', 'desc'); } elseif ($params['act_type'] == 2) { // 砍价 $query = self::alias('stat') ->leftJoin("{$actTable} act",'act.id=stat.act_id') ->leftJoin('kj_activity_goods gg','act.id=gg.activity_id') ->leftJoin('goods', 'goods.goods_id=gg.goods_id') ->where($filter) ->where('gg.goods_id', '>', 0) ->field("stat.act_id,act.name as act_name,goods.goods_name,goods.goods_no,act.start_time,act.end_time,stat.act_type,sum(stat.pv) as pv,sum(stat.uv) as uv,sum(stat.uv_new) as uv_new, sum(stat.pay_order_count) as pay_order_count,sum(stat.pay_user_count) as pay_user_count, sum(stat.pay_amount) as pay_amount,convert((stat.pay_user_count/stat.uv)*100,decimal(10,2)) as ratio") ->group('stat.act_id')->order('stat.act_id', 'desc'); } else { // 其他活动 $query = self::alias('stat') ->leftJoin("{$actTable} act",'act.id=stat.act_id') ->where($filter) ->where('act.id', '>', 0) ->field("stat.act_id,act.name as act_name,act.start_time,act.end_time,stat.act_type,sum(stat.pv) as pv,sum(stat.uv) as uv,sum(stat.uv_new) as uv_new, sum(stat.pay_order_count) as pay_order_count,sum(stat.pay_user_count) as pay_user_count, sum(stat.pay_amount) as pay_amount,convert((stat.pay_user_count/stat.uv)*100,decimal(10,2)) as ratio") ->group('stat.act_id')->order('stat.act_id', 'desc'); } return $query->paginate(15)->each(function ($item) { $item['ratio'] = helper::number2($item['ratio']); }); } /** * 获取查询条件 * @param array $param * @return array */ private function getFilter(array $param = []) { // 默认查询条件 $params = $this->setQueryDefaultValue($param, [ 'act_type' => 0, // 活动类型 ]); // 检索查询条件 $filter = []; $params['act_type'] > 0 && $filter[] = ['stat.act_type', '=', (int)$params['act_type']]; $filter[] = ['stat.act_id', '>', 0]; return $filter; } /** * 新增记录 * @param array $data * @return bool */ public function add(array $data) { $this->transaction(function () use ($data) { $this->save($data); }); return true; } /** * 更新记录 * @param array $data * @return bool */ public function edit(array $data) { $this->transaction(function () use ($data) { $this->save($data); }); return true; } }