Kfstatetimes.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace app\admin\model;
  3. use think\Model;
  4. /**
  5. * 客服状态改变时长模型
  6. */
  7. class Kfstatetimes extends Model
  8. {
  9. public function getDayData($dataArray, $uidArray = [])
  10. {
  11. $ret = $this->where(['sday' => ['IN', $dataArray]]);
  12. if ($uidArray) {
  13. $ret = $ret->where(['kfuid' => ['IN', $uidArray]]);
  14. }
  15. $ret = $ret->order(['kfuid' => 'asc'])->select();
  16. if (!$ret) {
  17. return false;
  18. }
  19. $return = $this->getOneUserData($ret);
  20. return $return;
  21. }
  22. private function getOneUserData($array)
  23. {
  24. $return = [];
  25. foreach ($array as $val) {
  26. $return[$val->sday][$val->kfuid]['s'.$val->kstatus] = $val->stime;
  27. }
  28. foreach ($return as $sday => $sval) {
  29. foreach ($sval as $kfuid => $tval) {
  30. if (!isset($tval['s0'])) {
  31. $return[$sday][$kfuid]['s0'] = 0;
  32. }
  33. if (!isset($tval['s1'])) {
  34. $return[$sday][$kfuid]['s1'] = 0;
  35. }
  36. if (!isset($tval['s2'])) {
  37. $return[$sday][$kfuid]['s2'] = 0;
  38. }
  39. if (!isset($tval['s3'])) {
  40. $return[$sday][$kfuid]['s3'] = 0;
  41. }
  42. $return[$sday][$kfuid]['all'] = intval($return[$sday][$kfuid]['s1']) + intval($return[$sday][$kfuid]['s2']) + intval($return[$sday][$kfuid]['s3']);
  43. if ($return[$sday][$kfuid]['all'] > 0) {
  44. $return[$sday][$kfuid]['s1p'] = floatPointDigit($return[$sday][$kfuid]['s1'] / $return[$sday][$kfuid]['all']);
  45. $return[$sday][$kfuid]['s2p'] = floatPointDigit($return[$sday][$kfuid]['s2'] / $return[$sday][$kfuid]['all']);
  46. $return[$sday][$kfuid]['s3p'] = floatPointDigit($return[$sday][$kfuid]['s3'] / $return[$sday][$kfuid]['all']);
  47. } else {
  48. $return[$sday][$kfuid]['s1p'] = 0;
  49. $return[$sday][$kfuid]['s2p'] = 0;
  50. $return[$sday][$kfuid]['s3p'] = 0;
  51. }
  52. }
  53. }
  54. return $return;
  55. }
  56. }