GuideWx.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace app\common\model;
  3. use app\common\library\Redis;
  4. use think\Model;
  5. class GuideWx extends Model
  6. {
  7. // 表名
  8. protected $table = 'guide_wx';
  9. // 自动写入时间戳字段
  10. protected $autoWriteTimestamp = 'int';
  11. // 定义时间戳字段名
  12. protected $createTime = 'createtime';
  13. protected $updateTime = 'updatetime';
  14. // 追加属性
  15. protected $append = [
  16. 'state_text'
  17. ];
  18. public function getStateList()
  19. {
  20. return ['1' => __('开启'),'0' => __('关闭')];
  21. }
  22. /**
  23. * 随机返回一个导粉二维码图片
  24. * @param $admin_id
  25. * @return null|string
  26. */
  27. public function getGw($admin_id){
  28. $redis = Redis::instance();
  29. $key = 'GW:'.$admin_id;
  30. $gwRes = $redis->srandmember($key);
  31. if($redis->exists($key) && !empty($gwRes)){
  32. return json_decode($gwRes,true) ?:$gwRes; //随机返回一个元素
  33. }else{
  34. if($redis->exists($key) && empty($gwRes)){ //此处判断如果渠道商没有设置导粉号
  35. return null;
  36. }else{
  37. $result = $this->where(['admin_id'=>$admin_id,'state'=>'1'])->select();
  38. if($result){
  39. $redis->del($key);
  40. foreach($result as $val){
  41. $redis->sadd($key,json_encode($val,JSON_UNESCAPED_UNICODE));
  42. }
  43. $redis->expire($key,86400*2);
  44. $gwRes = $redis->srandmember($key);
  45. return json_decode($gwRes,true) ?:$gwRes; //随机返回一个元素
  46. }else{
  47. $redis->sadd($key,'');
  48. $redis->expire($key,86400*2);
  49. }
  50. }
  51. return null;
  52. }
  53. }
  54. public function getStateTextAttr($value, $data)
  55. {
  56. $value = $value ? $value : $data['state'];
  57. $list = $this->getStateList();
  58. return isset($list[$value]) ? $list[$value] : '';
  59. }
  60. }