KefuWork.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace app\admin\model;
  3. use app\BaseModel;
  4. class KefuWork extends BaseModel
  5. {
  6. protected $autoWriteTimestamp = true;
  7. protected $createTime = 'created_at';
  8. protected $updateTime = 'updated_at';
  9. public static function addNum($admin_id, $field) {
  10. $info = self::where('admin_id', $admin_id)->where("created_at", '>=', date("Y-m-d"))->find();
  11. if (!$info) {
  12. $info = self::create([
  13. 'admin_id' => $admin_id,
  14. $field => 1,
  15. ]);
  16. } else {
  17. $info->$field += 1;
  18. $info->save();
  19. }
  20. $type = 0;
  21. if ($field == 'busy_num') {
  22. $type = 1;
  23. $time_field = 'busy_time';
  24. } else if ($field == 'online_num') {
  25. $type = 2;
  26. $time_field = 'online_time';
  27. }else if ($field == 'sign_num') {
  28. $type = 4;
  29. $time_field = 'service_time';
  30. } elseif ($field == 'chat_num') {
  31. $type = 3;
  32. $time_field = 'chat_time';
  33. }
  34. if ($type) {
  35. $exits = KefuTime::where('admin_id', $admin_id)->where('type', $type)->where("created_at", '>=', date("Y-m-d"))->order('id', 'desc')->find();
  36. if ($exits && $exits->status == 0) {
  37. $exits->status = 1;
  38. $exits->end_time = time();
  39. $exits->save();
  40. $info->$time_field += $exits->end_time - $exits->start_time;
  41. }
  42. KefuTime::addData($admin_id, $type);
  43. }
  44. return true;
  45. }
  46. }