| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?php
- namespace bizHd\promote\services;
- use bizHd\base\services\BaseService;
- use bizHd\promote\classes\GuaGuaClass;
- use Yii;
- class GuaGuaService extends BaseService
- {
-
- public static $baseFile = '\bizHd\promote\classes\GuaGuaClass';
-
- //将刮刮卡缓存保存到数据库 ssh 2019.8.12
- public static function putGuaCacheToSave()
- {
- $list = [['id' => 22, 'drawUser' => 1, 'visitUser' => 2, 'visitNum' => 3, 'winUser' => 3]];
- foreach ($list as $card) {
- $id = $card['id'];
- $data = [];
- $yesterday = date("Ymd", strtotime("-1 day"));
- //昨天的访问次数
- $visitKey = GuaGuaClass::getGuGuaVisitCacheKey($id, $yesterday);
- $num = Yii::$app->redis->executeCommand('GET', [$visitKey]);
- if (is_numeric($num)) {
- Yii::$app->redis->executeCommand('DEL', [$visitKey]);
- $data['visitNum'] = $card['visitNum'] + $num;
- }
- //昨天的访问人数
- $visitUserKey = GuaGuaClass::getGuaGuaVisitUserCacheKey($id, $yesterday);
- $userNum = Yii::$app->redis->executeCommand('ZCARD', [$visitUserKey]);
- if (is_numeric($userNum)) {
- $data['visitUser'] = $card['visitUser'] + $userNum;
- }
- if (!empty($data)) {
- GuaGuaService::updateById($id, $data);
- }
- Yii::$app->redis->executeCommand('DEL', [$visitKey]);
- Yii::$app->redis->executeCommand('DEL', [$visitUserKey]);
- }
- }
-
- //访问次数和用户数增加 ssh 2019.8.12
- public static function addVisit($id, $userId)
- {
- $key = GuaGuaClass::getGuGuaVisitCacheKey($id);
- Yii::$app->redis->executeCommand('INCR', [$key]);
- if (isset(Yii::$app->params['isLogin'])) {
- $key = GuaGuaClass::getGuaGuaVisitUserCacheKey($id);
- Yii::$app->redis->executeCommand('SADD', [$key, $userId]);
- }
- }
-
- /**
- * 获取当前总访问量 ssh 2019.8.12
- * a.昨天的缓存+今天的缓存+数据库的就是总数
- * b.如果每天凌晨00:30跑脚本,00:00 - 00:30时段会出现昨天今天都有缓存数据
- */
- public static function getCurrentVisitNum($card)
- {
- $id = $card['id'];
- //今天
- $key = GuaGuaClass::getGuGuaVisitCacheKey($id);
- $todayNum = Yii::$app->redis->executeCommand('GET', [$key]);
- $todayNum = is_numeric($todayNum) ? $todayNum : 0;
- //昨天
- $yesterday = date("Ymd", strtotime("-1 day"));
- $yesKey = GuaGuaClass::getGuGuaVisitCacheKey($id, $yesterday);
- $yesNum = Yii::$app->redis->executeCommand('GET', [$yesKey]);
- $yesNum = is_numeric($yesNum) ? $yesNum : 0;
- //总数
- $total = $card['visitNum'] + $todayNum + $yesNum;
- return $total;
- }
-
- /**
- * 获取当前访问用户的总数量 ssh 2019.8.12
- * a.昨天的缓存+今天的缓存+数据库的就是总数
- * b.如果每天凌晨00:30跑脚本,00:00 - 00:30时段会出现昨天今天都有缓存数据
- */
- public static function getCurrentVisitUserNum($card)
- {
- $id = $card['id'];
- //今天
- $key = GuaGuaClass::getGuaGuaVisitUserCacheKey($id);
- $todayNum = Yii::$app->redis->executeCommand('SCARD', [$key]);
- $todayNum = is_numeric($todayNum) ? $todayNum : 0;
- //昨天
- $yesterday = date("Ymd", strtotime("-1 day"));
- $yesKey = GuaGuaClass::getGuaGuaVisitUserCacheKey($id, $yesterday);
- $yesNum = Yii::$app->redis->executeCommand('SCARD', [$yesKey]);
- $yesNum = is_numeric($yesNum) ? $yesNum : 0;
- //总数
- $total = $todayNum + $card['visitUser'] + $yesNum;
- return $total;
- }
-
- //取最新的活动id,没有活动返回0 ssh 2019.9.25
- public static function getNewestId($sjId)
- {
- $respond = self::getByCondition(['sjId' => $sjId], true, 'id desc');
- $id = !empty($respond) ? $respond->id : 0;
- return $id;
- }
-
- }
|