MemberLabel.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的saas管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace app\model\member;
  12. use core\base\BaseModel;
  13. use think\db\exception\DbException;
  14. /**
  15. * 会员标签模型
  16. * Class MemberLabel
  17. * @package app\model\member
  18. */
  19. class MemberLabel extends BaseModel
  20. {
  21. /**
  22. * 数据表主键
  23. * @var string
  24. */
  25. protected $pk = 'label_id';
  26. /**
  27. * 模型名称
  28. * @var string
  29. */
  30. protected $name = 'member_label';
  31. /**
  32. * 获取对应标签的会员数量
  33. * @param $value
  34. * @param $data
  35. * @return int
  36. * @throws DbException
  37. */
  38. public function getMemberNumAttr($value, $data)
  39. {
  40. if (isset($data[ 'label_id' ])) {
  41. $like_arr = [
  42. '[' . $data[ 'label_id' ] . ']',
  43. '[' . $data[ 'label_id' ] . ',%',
  44. '%,' . $data[ 'label_id' ] . ']'
  45. ];
  46. return ( new Member() )->where([ [ 'member_label', "like", $like_arr, 'or' ] ])->count();
  47. } else
  48. return 0;
  49. }
  50. /**
  51. * 会员标签
  52. * @param $query
  53. * @param $value
  54. * @param $data
  55. */
  56. public function searchLabelNameAttr($query, $value, $data)
  57. {
  58. if ($value) {
  59. $query->where('label_name', 'like', '%' . $value . '%');
  60. }
  61. }
  62. }