KefuTime.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace app\admin\model;
  3. use app\BaseModel;
  4. use \think\facade\Db;
  5. class KefuTime extends BaseModel
  6. {
  7. protected $autoWriteTimestamp = true;
  8. protected $createTime = 'created_at';
  9. protected $updateTime = 'updated_at';
  10. public static function addData($admin_id, $type) {
  11. return self::create([
  12. 'admin_id' => $admin_id,
  13. 'type' => $type,
  14. 'start_time' => time(),
  15. 'status' => 0,
  16. ]);
  17. }
  18. //结束服务时间
  19. public static function endData($admin_id, $type, $cs_uid = 0) {
  20. //结束接线(需要判断当前没有任何接线的用户,才结束接线时间)
  21. if ($type == 3) {
  22. //更新客服接线数量
  23. User::where('user_id', $cs_uid)->update(['chat_num'=>Db::raw('chat_num-1')]);
  24. $count = User::where('cs_uid', $cs_uid)->whereIn('service_status', [1,2])->count();
  25. if ($count == 0) {
  26. return false;
  27. }
  28. }
  29. $exits = KefuTime::where('admin_id', $admin_id)->where('type', $type)->where("created_at", '>=', date("Y-m-d"))->order('id', 'desc')->find();
  30. if ($exits && $exits->status == 0) {
  31. $exits->status = 1;
  32. $exits->end_time = time();
  33. $exits->save();
  34. $info = KefuWork::where('admin_id', $admin_id)->where("created_at", '>=', date("Y-m-d"))->find();
  35. if ($type == 1) {
  36. $info->busy_time += $exits->end_time - $exits->start_time;
  37. $info->save();
  38. } elseif ($type == 2) {
  39. $info->online_time += $exits->end_time - $exits->start_time;
  40. $info->save();
  41. } elseif ($type == 3) {
  42. $info->chat_time += $exits->end_time - $exits->start_time;
  43. $info->save();
  44. } elseif ($type == 4) {
  45. $info->service_time += $exits->end_time - $exits->start_time;
  46. $info->save();
  47. }
  48. return true;
  49. }
  50. return false;
  51. }
  52. }