xhUserTagClassService.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace common\services;
  3. use Yii;
  4. use linslin\yii2\curl;
  5. use common\components\dict;
  6. use common\models\xhUserTagClass;
  7. class xhUserTagClassService {
  8. /**
  9. * 更新获取商家的用户标签
  10. */
  11. public static function refreshMerchantTag($sjId)
  12. {
  13. $merchantTagKey = dict::getCacheKey('merchantTag').$sjId;
  14. Yii::$app->redis->executeCommand('DEL', [$merchantTagKey]);
  15. return self::getMerchantTag($sjId);
  16. }
  17. /**
  18. * 获取商家的所有用户标签
  19. */
  20. public static function getMerchantTag($sjId)
  21. {
  22. $merchantTagKey = dict::getCacheKey('merchantTag').$sjId;
  23. $tag = Yii::$app->redis->executeCommand('HGETALL', [$merchantTagKey]);
  24. if(!empty($tag)){
  25. $i = 0;
  26. $x = 0;
  27. $arr = [];
  28. foreach($tag as $key => $val){
  29. $i++;
  30. if($i%2 == 0){
  31. $arr[$x]['value'] = $val;
  32. $x++;
  33. }else{
  34. $arr[$x]['key'] = $val;
  35. }
  36. }
  37. $return = [];
  38. foreach($arr as $key => $val){
  39. $return[$val['key']] = $val['value'];
  40. }
  41. unset($return['info_already_get_by_sql']);
  42. return $return;
  43. }
  44. $tag = xhUserTagClass::getAllByCondition(['sjId' => $sjId]);
  45. $arr = [];
  46. $params = [$merchantTagKey];
  47. $params[] = 'info_already_get_by_sql';
  48. $params[] = 'ok';//redis没有办法设置带空值的键,加此可以数据空时表示取过
  49. if(!empty($tag)){
  50. foreach($tag as $key => $val){
  51. $arr[$val['tagId']] = $val['name'];
  52. $params[] = $val['tagId'];
  53. $params[] = $val['name'];
  54. }
  55. }
  56. Yii::$app->redis->executeCommand('HMSET',$params);//将用户信息、用户标签放入缓存
  57. return $arr;
  58. }
  59. public static function add($data,$sjId)
  60. {
  61. $class = xhUserTagClass::add($data);
  62. self::refreshMerchantTag($sjId);
  63. return $class;
  64. }
  65. public static function updateById($id,$data,$sjId)
  66. {
  67. xhUserTagClass::updateById($id,$data);
  68. self::refreshMerchantTag($sjId);
  69. }
  70. public static function updateByCondition($condition,$data,$sjId)
  71. {
  72. xhUserTagClass::updateByCondition($condition,$data);
  73. self::refreshMerchantTag($sjId);
  74. }
  75. public static function deleteByCondition($condition,$sjId)
  76. {
  77. xhUserTagClass::deleteByCondition($condition);
  78. self::refreshMerchantTag($sjId);
  79. }
  80. public static function getByCondition($condition)
  81. {
  82. return xhUserTagClass::getByCondition($condition);
  83. }
  84. public static function getAllByCondition($condition)
  85. {
  86. return xhUserTagClass::getAllByCondition($condition);
  87. }
  88. }