| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 | 
							- <?php
 
- namespace Act\Lib;
 
- use Dever;
 
- class Num
 
- {
 
-     # 获取我在这个小刊中的本数
 
-     public function get($id, $uid)
 
-     {
 
-         $where['uid'] = $uid;
 
-         $where['journal_id'] = $id;
 
-         $where['state'] = 1;
 
-         $data = Dever::db('act/journal_num')->one($where);
 
-         if ($data) {
 
-             return $data['num'];
 
-         } else {
 
-             return 0;
 
-         }
 
-     }
 
-     
 
-     # 获取小刊的积分排行
 
-     public function getList($id, $uid = false)
 
-     {
 
-         $key = 'journal_num_' . $id;
 
-         $data = Dever::cache($key);
 
-         if (!$data) {
 
-             $where['journal_id'] = $id;
 
-             if ($uid > 0) {
 
-                 $where['uid'] = $uid;
 
-             }
 
-             $data = Dever::db('act/journal_num')->getAll($where);
 
-             if ($data) {
 
-                 foreach ($data as $k => $v) {
 
-                     $user = Dever::load('passport/api')->info($v['uid']);
 
-                     $data[$k]['username'] = $user['username'];
 
-                     $data[$k]['avatar'] = $user['avatar'];
 
-                     $data[$k]['mobile'] = $user['mobile'];
 
-                 }
 
-                 Dever::cache($key, $data, 600);
 
-             }
 
-         }
 
-         
 
-         return $data;
 
-     }
 
-     public function submit($id, $uid = false, $num = false, $update = true)
 
-     {
 
-         $where['uid'] = $uid;
 
-         $where['journal_id'] = $id;
 
-         $table = 'act/journal_num';
 
-         $db = Dever::db($table);
 
-         $info = $db->one($where);
 
-         if (!$info) {
 
-             $where['num'] = $num;
 
-             $db->insert($where);
 
-         } else {
 
-             if ($update) {
 
-                 $where['where_id'] = $info['id'];
 
-                 if (!$info['num'] || $info['num'] < 0) {
 
-                     $info['num'] = 0;
 
-                 }
 
-                 $where['num'] = $info['num'] + $num;
 
-                 $db->update($where);
 
-             }
 
-         }
 
-         return true;
 
-     }
 
-     # 矫正数据用的,放到计划任务中
 
-     public function cron()
 
-     {
 
-         
 
-         return true;
 
-     }
 
-     # 订阅数计数器
 
-     public function setCounter($id, $num = 0)
 
-     {
 
-         $key = 'journal_buy_num3_' . $id;
 
-         /*
 
-         $callback = function() use($id) {
 
-             $journal = Dever::db('journal/info')->one($id);
 
-             return $journal['num_ding'];
 
-         };
 
-         Dever::counter($key, $num, $callback);
 
-         */
 
-         Dever::cache($key, $num);
 
-         return true;
 
-     }
 
-     # 订阅数计数器
 
-     public function getCounter($id)
 
-     {
 
-         $key = 'journal_buy_num3_' . $id;
 
-         //return Dever::counter($key);
 
-         return Dever::cache($key);
 
-     }
 
-     /**
 
-      * 导出成excel
 
-      *
 
-      * @return mixed
 
-      */
 
-     public function out_api()
 
-     {
 
-         $id = Dever::input('id');
 
-         $journal = Dever::db('journal/info')->one($id);
 
-         if (!$journal) {
 
-             return;
 
-         }
 
-         $score = $this->getList($id);
 
-         $header = $data = array();
 
-         $name = $journal['name'];
 
-         if ($score) {
 
-             $i = 0;
 
-             foreach ($score as $k => $v) {
 
-                 $data[$i] = array
 
-                 (
 
-                     $i+1,
 
-                     $v['username'],
 
-                     $v['mobile'],
 
-                     $v['num'],
 
-                 );
 
-                 $i++;
 
-             }
 
-         }
 
-         $header = array
 
-         (
 
-             '排序', '用户名', '手机号', '本数'
 
-         );
 
-         $file = $name . '_排行榜';
 
-         if (Dever::input('test')) {
 
-             print_r($header);
 
-             print_r($data);die;
 
-         }
 
-         
 
-         Dever::excelExport($data, $header, $file, $sheet = 0, $sheetName = $name);
 
-         return;
 
-     }
 
- }
 
 
  |