You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

WorkGroupChatMember.php 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace app\model\work;
  3. use crmeb\basic\BaseModel;
  4. use crmeb\traits\ModelTrait;
  5. use think\model\relation\HasOne;
  6. /**
  7. * 企业微信群群成员
  8. * Class WorkGroupChatMember
  9. * @package app\model\work
  10. */
  11. class WorkGroupChatMember extends BaseModel
  12. {
  13. use ModelTrait;
  14. /**
  15. * @var string
  16. */
  17. protected $name = 'work_group_chat_member';
  18. /**
  19. * @var string
  20. */
  21. protected $autoWriteTimestamp = 'int';
  22. /**
  23. * @return HasOne
  24. */
  25. public function member()
  26. {
  27. return $this->hasOne(WorkMember::class, 'userid', 'userid');
  28. }
  29. /**
  30. * @return HasOne
  31. */
  32. public function client()
  33. {
  34. return $this->hasOne(WorkClient::class, 'external_userid', 'userid');
  35. }
  36. /**
  37. * @param $value
  38. * @return false|string
  39. */
  40. public function getJoinTimeAttr($value)
  41. {
  42. return date('Y-m-d H:i:s', $value);
  43. }
  44. /**
  45. * 名称模糊搜索
  46. * @param $query
  47. * @param $value
  48. */
  49. public function searchNameLikeAttr($query, $value)
  50. {
  51. if ('' !== $value) {
  52. $query->where(function ($query) use ($value) {
  53. $query->whereIn('userid', function ($query) use ($value) {
  54. $query->name('work_client')->whereLike('name', '%' . $value . '%')->field(['external_userid']);
  55. })->whereOr('userid', 'in', function ($query) use ($value) {
  56. $query->name('work_member')->whereLike('name', '%' . $value . '%')->field(['userid']);
  57. });
  58. });
  59. }
  60. }
  61. }