CRMEB/application/admin/model/user/UserPoint.php
2018-12-31 13:39:11 +08:00

109 lines
3.7 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: liying
* Date: 2018/7/20
* Time: 18:08
*/
namespace app\admin\model\user;
use app\admin\model\user\User;
use app\admin\model\user\UserBill;
use traits\ModelTrait;
use basic\ModelBasic;
use service\PHPExcelService;
class UserPoint extends ModelBasic
{
use ModelTrait;
/*
* 获取积分信息
* */
public static function systemPage($where){
$model= new UserBill();
if($where['status']!='')UserBill::where('status',$where['status']);
if($where['title']!='')UserBill::where('title','like',"%$where[status]%");
$model->where('category','integral')->select();
return $model::page($model);
}
/*
*
* 异步获取积分信息
* */
public static function getpointlist($where){
$list=self::setWhere($where)
->order('a.add_time desc')
->field(['a.*','b.nickname'])
->page((int)$where['page'],(int)$where['limit'])
->select()
->toArray();
foreach ($list as $key=>$item){
$list[$key]['add_time']=date('Y-m-d', $item['add_time']);
}
$count=self::setWhere($where)->field(['a.*','b.nickname'])->count();
return ['count'=>$count,'data'=>$list];
}
//生成Excel表格并下载
public static function SaveExport($where){
$list=self::setWhere($where)->field(['a.*','b.nickname'])->select();
$Export=[];
foreach ($list as $key=>$item){
$Export[]=[
$item['id'],
$item['title'],
$item['balance'],
$item['number'],
$item['mark'],
$item['nickname'],
date('Y-m-d H:i:s',$item['add_time']),
];
}
PHPExcelService::setExcelHeader(['编号','标题','积分余量','明细数字','备注','用户微信昵称','添加时间'])
->setExcelTile('积分日志','积分日志'.time(),'生成时间:'.date('Y-m-d H:i:s',time()))
->setExcelContent($Export)
->ExcelSave();
}
public static function setWhere($where){
$model=UserBill::alias('a')->join('__USER__ b','a.uid=b.uid','left')->where('a.category','integral');
$time['data']='';
if($where['start_time']!='' && $where['end_time']!=''){
$time['data']=$where['start_time'].' - '.$where['end_time'];
}
$model=self::getModelTime($time,$model,'a.add_time');
if($where['nickname']!=''){
$model=$model->where('b.nickname|b.uid','like',$where['nickname']);
}
return $model;
}
//获取积分头部信息
public static function getUserpointBadgelist($where){
return [
[
'name'=>'总积分',
'field'=>'个',
'count'=>self::setWhere($where)->sum('a.number'),
'background_color'=>'layui-bg-blue',
],
[
'name'=>'客户签到次数',
'field'=>'个',
'count'=>self::setWhere($where)->where('a.type','sign')->group('a.uid')->count(),
'background_color'=>'layui-bg-cyan',
],
[
'name'=>'签到送出积分',
'field'=>'个',
'count'=>self::setWhere($where)->where('a.type','sign')->sum('a.number'),
'background_color'=>'layui-bg-cyan',
],
[
'name'=>'使用积分',
'field'=>'个',
'count'=>self::setWhere($where)->where('a.type','deduction')->sum('a.number'),
'background_color'=>'layui-bg-cyan',
],
];
}
}