123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- <?php
- /**
- * Created by PhpStorm.
- * User: stanley-king
- * Date: 2017/2/26
- * Time: 下午7:36
- */
- class StatesHelper
- {
- static public function onIndex($states,$msg)
- {
- $type = $msg['type'];
- if($type == 'tags') {
- $states['tags'] = true;
- }
- elseif($type == 'special') {
- $states['special'] = true;
- }
- elseif($type == 'brands') {
- $states['brands'] = true;
- }
- elseif($type == 'fcode') {
- $states['fcode'] = true;
- }
- elseif($type == 'pay_fcode') {
- $states['pay_fcode'] = true;
- }
- elseif($type == 'present_fcode') {
- $states['present_fcode'] = true;
- }
- }
- static public function onGoods($states,$msg)
- {
- $type = $msg['type'];
- if($type == 'common_info') {
- $states['common_info'] = true;
- }
- }
- static public function onActivity($states,$msg)
- {
- $type = $msg['type'];
- if($type == 'full_sent') {
- $states['full_sent'] = true;
- }
- elseif($type == 'groupbuy') {
- $states['groupbuy'] = true;
- }
- elseif($type == 'limit') {
- $states['limit'] = true;
- }
- elseif($type == 'recommend_goods') {
- $states['recommend_goods'] = true;
- }
- elseif($type == 'bundling') {
- $states['bundling'] = true;
- }
- elseif($type == 'recommend_combo') {
- $states['recommend_combo'] = true;
- }
- elseif($type == 'goods_gift') {
- $states['goods_gift'] = true;
- }
- elseif($type == 'optional_goods') {
- $states['optional_goods'] = true;
- }
- elseif($type == 'goods_sampler') {
- $states['goods_sampler'] = true;
- }
- elseif($type == 'bargain_goods') {
- $states['bargain_goods'] = true;
- }
- }
- static public function onSearcher($states,$msg)
- {
- $type = $msg['type'];
- if($type == 'init') {
- $states['init'] = true;
- }
- }
- static public function onRefill($states,$msg)
- {
- $type = $msg['type'];
- if($type == 'channel') {
- $states['channel'] = true;
- }
- elseif($type == "merchant") {
- $states['merchant'] = true;
- }
- }
- static public function fetch_state($tag)
- {
- global $gMessageStates;
- if(empty($gMessageStates)) {
- return true;
- }
- $state = false;
- $gMessageStates->synchronized(function () use ($tag,&$state)
- {
- global $gMessageStates;
- $finded = false;
- foreach ($gMessageStates as $key => $val)
- {
- if($key == $tag)
- {
- $finded = true;
- $state = $gMessageStates[$tag];
- if($state == true) {
- $gMessageStates[$tag] = false;
- break;
- }
- }
- }
- if($finded == false) {
- $gMessageStates[$tag] = false;
- $state = true;
- }
- });
- return $state;
- }
- static public function init()
- {
- global $gMessageStates;
- $gMessageStates['tags'] = true;
- }
- }
- function handler_redis($redis, $chan, $msg)
- {
- if (defined('UGC_SUBSCRIBER_PROC') && UGC_SUBSCRIBER_PROC == true)
- {
- if($chan == 'special') {
- UgcHandler::onSpecial($msg);
- }
- elseif($chan == 'follow') {
- UgcHandler::onFellow($msg);
- }
- elseif ($chan == 'inviter') {
- UgcHandler::onInviter($msg);
- }
- else {
- Log::record("message: {$chan} -- {$msg}",Log::DEBUG);
- }
- }
- else
- {
- $cur_trd = Thread::getCurrentThread();
- if(!is_null($cur_trd)) {
- $cur_trd->dispatch($chan,$msg);
- }
- }
- }
|