UserPoint.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: liying
  5. * Date: 2018/7/20
  6. * Time: 18:08
  7. */
  8. namespace app\admin\model\user;
  9. use app\admin\model\user\User;
  10. use app\admin\model\user\UserBill;
  11. use traits\ModelTrait;
  12. use basic\ModelBasic;
  13. use service\PHPExcelService;
  14. class UserPoint extends ModelBasic
  15. {
  16. use ModelTrait;
  17. /*
  18. * 获取积分信息
  19. * */
  20. public static function systemPage($where){
  21. $model= new UserBill();
  22. if($where['status']!='')UserBill::where('status',$where['status']);
  23. if($where['title']!='')UserBill::where('title','like',"%$where[status]%");
  24. $model->where('category','integral')->select();
  25. return $model::page($model);
  26. }
  27. /*
  28. *
  29. * 异步获取积分信息
  30. * */
  31. public static function getpointlist($where){
  32. $list=self::setWhere($where)
  33. ->order('a.add_time desc')
  34. ->field(['a.*','b.nickname'])
  35. ->page((int)$where['page'],(int)$where['limit'])
  36. ->select()
  37. ->toArray();
  38. foreach ($list as $key=>$item){
  39. $list[$key]['add_time']=date('Y-m-d', $item['add_time']);
  40. }
  41. $count=self::setWhere($where)->field(['a.*','b.nickname'])->count();
  42. return ['count'=>$count,'data'=>$list];
  43. }
  44. //生成Excel表格并下载
  45. public static function SaveExport($where){
  46. $list=self::setWhere($where)->field(['a.*','b.nickname'])->select();
  47. $Export=[];
  48. foreach ($list as $key=>$item){
  49. $Export[]=[
  50. $item['id'],
  51. $item['title'],
  52. $item['balance'],
  53. $item['number'],
  54. $item['mark'],
  55. $item['nickname'],
  56. date('Y-m-d H:i:s',$item['add_time']),
  57. ];
  58. }
  59. PHPExcelService::setExcelHeader(['编号','标题','积分余量','明细数字','备注','用户微信昵称','添加时间'])
  60. ->setExcelTile('积分日志','积分日志'.time(),'生成时间:'.date('Y-m-d H:i:s',time()))
  61. ->setExcelContent($Export)
  62. ->ExcelSave();
  63. }
  64. public static function setWhere($where){
  65. $model=UserBill::alias('a')->join('__USER__ b','a.uid=b.uid','left')->where('a.category','integral');
  66. $time['data']='';
  67. if($where['start_time']!='' && $where['end_time']!=''){
  68. $time['data']=$where['start_time'].' - '.$where['end_time'];
  69. }
  70. $model=self::getModelTime($time,$model,'a.add_time');
  71. if($where['nickname']!=''){
  72. $model=$model->where('b.nickname|b.uid','like',$where['nickname']);
  73. }
  74. return $model;
  75. }
  76. //获取积分头部信息
  77. public static function getUserpointBadgelist($where){
  78. return [
  79. [
  80. 'name'=>'总积分',
  81. 'field'=>'个',
  82. 'count'=>self::setWhere($where)->sum('a.number'),
  83. 'background_color'=>'layui-bg-blue',
  84. ],
  85. [
  86. 'name'=>'客户签到次数',
  87. 'field'=>'个',
  88. 'count'=>self::setWhere($where)->where('a.type','sign')->group('a.uid')->count(),
  89. 'background_color'=>'layui-bg-cyan',
  90. ],
  91. [
  92. 'name'=>'签到送出积分',
  93. 'field'=>'个',
  94. 'count'=>self::setWhere($where)->where('a.type','sign')->sum('a.number'),
  95. 'background_color'=>'layui-bg-cyan',
  96. ],
  97. [
  98. 'name'=>'使用积分',
  99. 'field'=>'个',
  100. 'count'=>self::setWhere($where)->where('a.type','deduction')->sum('a.number'),
  101. 'background_color'=>'layui-bg-cyan',
  102. ],
  103. ];
  104. }
  105. }