123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- <?php
- namespace app\common\model;
- use app\main\constants\OrderContents;
- use app\main\constants\PayConstants;
- use app\main\model\object\OrdersCollectObject;
- use app\main\service\OrdersCollectUpdateService;
- use think\Model;
- class OrdersCollect extends Model
- {
- // 表名
- protected $table = 'orders_collect';
- // 自动写入时间戳字段
- protected $autoWriteTimestamp = 'int';
- // 定义时间戳字段名
- protected $createTime = 'createtime';
- protected $updateTime = 'updatetime';
- // 追加属性
- protected $append = [
- 'type_text',
- 'flag_text'
- ];
- public function getTypeList()
- {
- return ['1' => __('天'),'2' => __('月'),'3' => __('汇总')];
- }
- public function getTypeTextAttr($value, $data)
- {
- $value = $value ? $value : $data['type'];
- $list = $this->getTypeList();
- return isset($list[$value]) ? $list[$value] : '';
- }
- public function getFlagList()
- {
- return ['1' => __('自身'),'2' => __('属下'),'3' => __('全部')];
- }
- public function getFlagTextAttr($value, $data)
- {
- $value = $value ? $value : $data['flag'];
- $list = $this->getFlagList();
- return isset($list[$value]) ? $list[$value] : '';
- }
- /**
- * 聚合sum查询订单统计
- *
- * @param string|array|null $admin_id 管理、渠道、代理 id
- * @param int $type 周期类型 1天 2月 3汇总 //此方法只能查type=1的,通过sum聚合
- * @param string|null $flag 数据表示 1自身 2属下 3全部
- * @param string|null $startdate 日期开始时间(包含)
- * @param string|null $enddate 日期结束时间(包含)
- */
- public function sumCollect($admin_id = null,$type = 1, $flag = null, $startdate = null, $enddate = null, $business_line = PayConstants::BUSINESS_WECHAT)
- {
- if (is_null($admin_id) || $type != 1 || is_null($flag)) {
- return null;
- }
- if (is_array($admin_id) && count($admin_id) == 0) {
- return null;
- }
- $where = [
- 'type' => $type,
- 'flag' => $flag
- ];
- $where['admin_id'] = is_array($admin_id) ? ['in', $admin_id] : $admin_id;
- if (!is_null($startdate) && !is_null($enddate)) { //2个都存在才是区间查询 2头都包含
- $where['createdate'] = ['between', "{$startdate},{$enddate}"];
- } else {
- $where['createdate'] = ['<', date('Ymd', time())]; //不包含今天
- }
- $where['business_line'] = $business_line;
- $info = $this->field("sum(recharge_money) as recharge_money,sum(recharge_money_benefit) as recharge_money_benefit,sum(normal_recharge_orders_count) as normal_recharge_orders_count,sum(normal_recharge_orders) as normal_recharge_orders,sum(normal_recharge_money) as normal_recharge_money,sum(normal_recharge_money_benefit) as normal_recharge_money_benefit,sum(normal_recharge_guide_orders) as normal_recharge_guide_orders,sum(noraml_recharge_guide_money) as noraml_recharge_guide_money,sum(normal_recharge_user_count) as normal_recharge_user_count,sum(normal_recharge_user_suc_count) as normal_recharge_user_suc_count,sum(noraml_recharge_guide_money_benefit) as noraml_recharge_guide_money_benefit,sum(vip_recharge_orders_count) as vip_recharge_orders_count,sum(vip_recharge_orders) as vip_recharge_orders,sum(vip_recharge_money) as vip_recharge_money,sum(vip_recharge_money_benefit) as vip_recharge_money_benefit,sum(vip_recharge_guide_orders) as vip_recharge_guide_orders,sum(vip_recharge_guide_money) as vip_recharge_guide_money,sum(vip_recharge_user_count) as vip_recharge_user_count,sum(vip_recharge_user_suc_count) as vip_recharge_user_suc_count,sum(vip_recharge_guide_money_benefit) as vip_recharge_guide_money_benefit, sum(kandian_recharge_orders_count) as kandian_recharge_orders_count, sum(kandian_recharge_orders) as kandian_recharge_orders, sum(split_money) as split_money")->where($where)->find();
- $info['type'] = $type;
- $info['flag'] = $flag;
- return $info;
- }
- /**
- * @param $object
- * @return array
- */
- public function mkParamsForCheck(OrdersCollectObject $object)
- {
- return [
- 'admin_id' => $object->admin_id,
- 'business_line' => $object->business_line,
- 'type' => $object->type,
- 'flag' => $object->flag,
- 'createdate' => OrdersCollectUpdateService::instance()->getCreateDate($object->type)->data,
- ];
- }
- /**
- * @param $object
- * @return array
- */
- public function mkParamsForUpdate(OrdersCollectObject $object)
- {
- $update = $object->toArray();
- unset($update['admin_id']);
- unset($update['flag']);
- unset($update['type']);
- unset($update['business_line']);
- unset($update['type_text']);
- unset($update['flag_text']);
- $update['updatetime'] = time();
- return $update;
- }
- /**
- * @param $object
- * @return array
- */
- public function mkParamsForInsert(OrdersCollectObject $object)
- {
- $current_time = time();
- return [
- 'admin_id' => $object->admin_id,
- 'business_line' => $object->business_line,
- 'type' => $object->type,
- 'flag' => $object->flag,
- 'createdate' => OrdersCollectUpdateService::instance()->getCreateDate($object->type)->data,
- 'createtime' => $current_time,
- 'updatetime' => $current_time,
- 'recharge_money' => (float)$object->recharge_money,
- 'recharge_money_benefit' => (float)$object->recharge_money_benefit,
- 'normal_recharge_orders_count' => (float)$object->normal_recharge_orders_count,
- 'normal_recharge_orders' => (float)$object->normal_recharge_orders,
- 'normal_recharge_money' => (float)$object->normal_recharge_money,
- 'normal_recharge_money_benefit' => (float)$object->normal_recharge_money_benefit,
- 'normal_recharge_guide_orders' => (float)$object->normal_recharge_guide_orders,
- 'noraml_recharge_guide_money' => (float)$object->noraml_recharge_guide_money,
- 'normal_recharge_user_count' => (float)$object->normal_recharge_user_count,
- 'normal_recharge_user_suc_count' => (float)$object->normal_recharge_user_suc_count,
- 'noraml_recharge_guide_money_benefit' => (float)$object->noraml_recharge_guide_money_benefit,
- 'vip_recharge_orders_count' => (float)$object->vip_recharge_orders_count,
- 'vip_recharge_orders' => (float)$object->vip_recharge_orders,
- 'vip_recharge_money' => (float)$object->vip_recharge_money,
- 'vip_recharge_money_benefit' => (float)$object->vip_recharge_money_benefit,
- 'vip_recharge_guide_orders' => (float)$object->vip_recharge_guide_orders,
- 'vip_recharge_guide_money' => (float)$object->vip_recharge_guide_money,
- 'vip_recharge_user_count' => (float)$object->vip_recharge_user_count,
- 'vip_recharge_user_suc_count' => (float)$object->vip_recharge_user_suc_count,
- 'vip_recharge_guide_money_benefit' => (float)$object->vip_recharge_guide_money_benefit,
- 'pv' => (float)$object->pv,
- 'uv' => (float)$object->uv,
- 'kandian_recharge_orders_count' => (float)$object->kandian_recharge_orders_count,
- 'kandian_recharge_orders' => (float)$object->kandian_recharge_orders,
- 'split_money' => (float)$object->split_money,
- ];
- }
- }
|