1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- /**
- * DayAgentSwitchModel.php UTF-8
- * 切量渠道每日
- *
- * @date : 2017/12/18 11:41
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : chenbingling <cbl@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huoAgentSwitch\model;
- use huo\model\data\DayAgentModel;
- use huo\model\data\DayBaseModel;
- use huo\model\user\UserModel;
- class DayAgentSwitchModel extends DayBaseModel {
- protected $name = 'day_agent_switch';
- public $map = [];
- public function agent() {
- return $this->belongsTo('huo\model\user\UserModel', 'agent_id', 'id')
- ->field('id,user_login,role_id,parent_id');
- }
- public function mpagent() {
- return $this->belongsTo(UserModel::className(), 'agent_id', 'id')->setEagerlyType(0);
- }
- public function getByDate($field, $start_date, $end_date, $alias = null) {
- $_map = $this->map;
- $alias or $alias = $field;
- $_rows = $this->where($_map)->whereBetween('date', [$start_date, $end_date])
- ->field("date, $field")
- ->select()->toArray();
- $_switch_data = [];
- foreach ($_rows as $_row) {
- $_switch_data[$_row['date']] = $_row[$alias];
- }
- /* 获取真实数据 */
- $_rows = (new DayAgentModel())->where($_map)->whereBetween('date', [$start_date, $end_date])
- ->field("date, $field")
- ->select()->toArray();
- $_data = [];
- foreach ($_rows as $_row) {
- $_data[$_row['date']] = empty($_switch_data[$_row['date']]) ? $_row[$alias]
- : $_row[$alias] - $_switch_data[$_row['date']];
- }
- $result = [];
- for ($_i = strtotime($start_date); $_i <= strtotime($end_date); $_i += 24 * 3600) {
- $_key = date('Y-m-d', $_i);
- $result[date('m-d', $_i)] = isset($_data[$_key]) ? doubleval($_data[$_key]) : 0;
- }
- return $result;
- }
- }
|