KeFuSession.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace app\admin\model;
  3. use think\Model;
  4. use traits\model\SoftDelete;
  5. class KeFuSession extends Model
  6. {
  7. use SoftDelete;
  8. // 表名
  9. protected $name = 'kefu_session';
  10. // 自动写入时间戳字段
  11. protected $autoWriteTimestamp = 'int';
  12. // 定义时间戳字段名
  13. protected $createTime = 'createtime';
  14. protected $updateTime = false;
  15. protected $deleteTime = 'deletetime';
  16. // 追加属性
  17. protected $append = [
  18. 'user_message_count',
  19. 'csr_message_count',
  20. ];
  21. public function getUserMessageCountAttr($value, $data)
  22. {
  23. return \think\Db::name('kefu_record')
  24. ->where('session_id', $data['id'])
  25. ->where('message_type', '<>', 3)
  26. ->where('sender_identity', 1)
  27. ->count('id');
  28. }
  29. public function getCsrMessageCountAttr($value, $data)
  30. {
  31. return \think\Db::name('kefu_record')
  32. ->where('session_id', $data['id'])
  33. ->where('sender_identity', 0)
  34. ->count('id');
  35. }
  36. public function kefuuser()
  37. {
  38. return $this->belongsTo('KeFuUser', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
  39. }
  40. public function csr()
  41. {
  42. return $this->belongsTo('Admin', 'csr_id', 'id', [], 'LEFT')->setEagerlyType(0);
  43. }
  44. }