publisher.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 2017/2/27
  6. * Time: 上午10:17
  7. */
  8. namespace message;
  9. require_once (BASE_ROOT_PATH . '/helper/message/pubevent.php');
  10. use Log;
  11. use Redis;
  12. class publisher
  13. {
  14. private $mConfig;
  15. private $mRedis;
  16. private $mConnected;
  17. public function __construct()
  18. {
  19. $this->mConfig = C('redis');
  20. $this->mRedis = new Redis();
  21. $ret = $this->mRedis->pconnect($this->mConfig['master']['host'], $this->mConfig['master']['port']);
  22. if($ret == false) {
  23. Log::record("redis 连接失败.",Log::ERR);
  24. $this->mConnected = false;
  25. } else {
  26. $this->mConnected = true;
  27. }
  28. }
  29. public function __destruct()
  30. {
  31. if($this->mConnected) {
  32. $this->mRedis->close();
  33. }
  34. }
  35. public function modify_index_tabs()
  36. {
  37. if($this->mConnected) {
  38. $this->mRedis->publish('ch_index',json_encode(['type'=>'tags','value' => 0]));
  39. }
  40. }
  41. public function modify_index_brands()
  42. {
  43. if($this->mConnected) {
  44. $this->mRedis->publish('ch_index',json_encode(['type'=>'brands','value' => 0]));
  45. }
  46. }
  47. public function modify_index_payfcode()
  48. {
  49. if($this->mConnected) {
  50. $this->mRedis->publish('ch_index',json_encode(['type'=>'pay_fcode','value' => 0]));
  51. }
  52. }
  53. public function modify_index_presentfcode()
  54. {
  55. if($this->mConnected) {
  56. $this->mRedis->publish('ch_index',json_encode(['type'=>'present_fcode','value' => 0]));
  57. }
  58. }
  59. public function modify_index_special()
  60. {
  61. if($this->mConnected) {
  62. $this->mRedis->publish('ch_index',json_encode(['type'=>'special','value' => 0]));
  63. }
  64. }
  65. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  66. public function modify_goods()
  67. {
  68. if($this->mConnected) {
  69. $this->mRedis->publish('goods',json_encode(['type'=>'common_info','value' => 0]));
  70. }
  71. }
  72. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  73. public function modify_activity_fullsent()
  74. {
  75. if($this->mConnected) {
  76. $this->mRedis->publish('activity',json_encode(['type'=>'full_sent','value' => 0]));
  77. }
  78. }
  79. public function modify_activity_groupbuy()
  80. {
  81. if($this->mConnected) {
  82. dcache('all_groupbuy','mb_activity');
  83. $this->mRedis->publish('activity',json_encode(['type'=>'groupbuy','value' => 0]));
  84. }
  85. }
  86. public function modify_activity_limit()
  87. {
  88. if($this->mConnected) {
  89. dcache('all_limitime','mb_activity');
  90. $this->mRedis->publish('activity',json_encode(['type'=>'limit','value' => 0]));
  91. }
  92. }
  93. public function modify_activity_recommend_goods()
  94. {
  95. if($this->mConnected) {
  96. dcache('all_recommend_goods','mb_activity');
  97. $this->mRedis->publish('activity',json_encode(['type'=>'recommend_goods','value' => 0]));
  98. }
  99. }
  100. public function modify_activity_bundling()
  101. {
  102. if($this->mConnected) {
  103. dcache('all_bundling','mb_activity');
  104. $this->mRedis->publish('activity',json_encode(['type'=>'bundling','value' => 0]));
  105. }
  106. }
  107. public function modify_activity_recommend_combo()
  108. {
  109. if($this->mConnected) {
  110. dcache('all_recommend_combo','mb_activity');
  111. $this->mRedis->publish('activity',json_encode(['type'=>'recommend_combo','value' => 0]));
  112. }
  113. }
  114. public function modify_activity_goods_gift()
  115. {
  116. if($this->mConnected) {
  117. dcache('all_goods_gift','mb_activity');
  118. $this->mRedis->publish('activity',json_encode(['type'=>'goods_gift','value' => 0]));
  119. }
  120. }
  121. public function modify_activity_optional_goods()
  122. {
  123. if($this->mConnected) {
  124. $this->mRedis->publish('activity',json_encode(['type'=>'optional_goods','value' => 0]));
  125. }
  126. }
  127. public function modify_activity_goods_sampler()
  128. {
  129. if($this->mConnected) {
  130. $this->mRedis->publish('activity',json_encode(['type'=>'goods_sampler','value' => 0]));
  131. }
  132. }
  133. public function modify_activity_bargain_goods()
  134. {
  135. if($this->mConnected) {
  136. $this->mRedis->publish('activity',json_encode(['type'=>'bargain_goods','value' => 0]));
  137. }
  138. }
  139. public function modify_activity()
  140. {
  141. $this->modify_activity_fullsent();
  142. $this->modify_activity_groupbuy();
  143. $this->modify_activity_limit();
  144. $this->modify_activity_recommend_goods();
  145. $this->modify_activity_bundling();
  146. $this->modify_activity_recommend_combo();
  147. $this->modify_activity_goods_gift();
  148. }
  149. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  150. public function modify_seracher_init()
  151. {
  152. if($this->mConnected) {
  153. $this->mRedis->publish('searcher',json_encode(['type'=>'init','value' => 0]));
  154. }
  155. }
  156. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  157. public function add_inviter($user,$inviter)
  158. {
  159. if($this->mConnected)
  160. {
  161. $user = intval($user);
  162. $inviter = intval($inviter);
  163. $this->mRedis->publish('inviter',json_encode(['type'=>'add','params' => ['user_id' => $user,'inviter_id' => $inviter]]));
  164. }
  165. }
  166. public function add_follow($user, $fellows)
  167. {
  168. if($this->mConnected)
  169. {
  170. $user = intval($user);
  171. $uids = [];
  172. foreach ($fellows as $uid) {
  173. $uid = intval($uid);
  174. if($uid > 0) {
  175. $uids[] = $uid;
  176. }
  177. }
  178. $this->mRedis->publish('follow',json_encode(['type'=>'add','params' => ['user_id' => $user,'friends' => $uids]]));
  179. }
  180. }
  181. public function del_follow($user, $fellows)
  182. {
  183. if($this->mConnected)
  184. {
  185. $user = intval($user);
  186. $uids = [];
  187. foreach ($fellows as $uid) {
  188. $uid = intval($uid);
  189. if($uid > 0) {
  190. $uids[] = $uid;
  191. }
  192. }
  193. $this->mRedis->publish('follow',json_encode(['type'=>'del','params' => ['user_id' => $user,'friends' => $uids]]));
  194. }
  195. }
  196. public function add_special($user,$specials)
  197. {
  198. if($this->mConnected)
  199. {
  200. $user = intval($user);
  201. $this->mRedis->publish('special',json_encode(['type'=>'add','params' => ['user_id' => $user,'specials' => $specials]]));
  202. }
  203. }
  204. public function del_special($user,$specials)
  205. {
  206. Log::record(__METHOD__,Log::DEBUG);
  207. if($this->mConnected)
  208. {
  209. $user = intval($user);
  210. $this->mRedis->publish('special',json_encode(['type'=>'del','params' => ['user_id' => $user,'specials' => $specials]]));
  211. }
  212. }
  213. public function modify_refill_channel()
  214. {
  215. Log::record(__METHOD__,Log::DEBUG);
  216. if($this->mConnected)
  217. {
  218. $event = new pubevent();
  219. $event->onRefillBefore();
  220. $this->mRedis->publish('refill',json_encode(['type'=>'channel','value' => 0]));
  221. }
  222. }
  223. public function modify_refill_merchant()
  224. {
  225. Log::record(__METHOD__,Log::DEBUG);
  226. if($this->mConnected) {
  227. $this->mRedis->publish('refill',json_encode(['type'=>'merchant','value' => 0]));
  228. }
  229. }
  230. public function modify_refill_ratio()
  231. {
  232. Log::record(__METHOD__,Log::DEBUG);
  233. if($this->mConnected) {
  234. $this->mRedis->publish('refill',json_encode(['type'=>'ratio','value' => 0]));
  235. }
  236. }
  237. public function modify_refill_bridge()
  238. {
  239. Log::record(__METHOD__,Log::DEBUG);
  240. if($this->mConnected) {
  241. $this->mRedis->publish('refill',json_encode(['type'=>'bridge','value' => 0]));
  242. }
  243. }
  244. }