WechatUsers.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CatchAdmin [Just Like ~ ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2017~2020 http://catchadmin.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed ( https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt )
  8. // +----------------------------------------------------------------------
  9. // | Author: JaguarJack [ njphper@gmail.com ]
  10. // +----------------------------------------------------------------------
  11. namespace catchAdmin\wechat\model;
  12. use catchAdmin\wechat\model\search\UserSearchTrait;
  13. use catcher\base\CatchModel;
  14. use think\facade\Db;
  15. class WechatUsers extends CatchModel
  16. {
  17. use UserSearchTrait;
  18. protected $name = 'wechat_users';
  19. protected $field = [
  20. 'id', //
  21. 'nickname', // 用户名',
  22. 'avatar', // 用户头像',
  23. 'openid', // openid',
  24. 'language', // 语言',
  25. 'country', // 国家',
  26. 'province', // 省份',
  27. 'city', // 城市',
  28. 'subscribe', // 用户状态 0 取消订阅 1 订阅',
  29. 'block', // 拉黑状态 1 正常 2 拉黑',
  30. 'subscribe_time', // 订阅时间',
  31. 'subscribe_scene', // 订阅场景 ADD_SCENE_SEARCH 公众号搜索,ADD_SCENE_ACCOUNT_MIGRATION 公众号迁移,ADD_SCENE_PROFILE_CARD 名片分享,ADD_SCENE_QR_CODE 扫描二维码,ADD_SCENE_PROFILE_LINK 图文页内名称点击,ADD_SCENE_PROFILE_ITEM 图文页右上角菜单,ADD_SCENE_PAID 支付后关注,ADD_SCENE_WECHAT_ADVERTISEMENT 微信广告,ADD_SCENE_OTHERS 其他',
  32. 'unionid', // 用户平台唯一身份认证',
  33. 'sex', // 用户状态 1 男 2 女 0 未知',
  34. 'remark', // 备注',
  35. 'groupid', // 分组ID',
  36. 'tagid_list', // 标签列表',
  37. 'created_at', // 创建时间',
  38. 'updated_at', // 更新时间',
  39. 'deleted_at', // 删除状态,0未删除 >0 已删除',
  40. ];
  41. const BlOCK = 2; // 拉黑
  42. const UNBLOCK = 1; // 取消拉黑
  43. public function hasTags()
  44. {
  45. return $this->belongsToMany(WechatTags::class, 'wechat_user_has_tags', 'tag_id', 'user_id');
  46. }
  47. public function scopeTags($query)
  48. {
  49. return $query->addSelectSub(function () {
  50. return Db::name('wechat_user_has_tags')
  51. ->whereColumn('wechat_user_has_tags.user_id', $this->aliasField('id'))
  52. ->leftJoin('wechat_tags','wechat_user_has_tags.tag_id=wechat_tags.tag_id')
  53. ->field(Db::raw('group_concat(`wechat_tags`.name)'));
  54. }, 'tags');
  55. }
  56. }