InstitutionService.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace app\admin\service\institution;
  3. use app\admin\model\exams\ExamsModel;
  4. use app\admin\model\institution\InsMonitoring;
  5. use app\admin\model\institution\InsMonitoringRecord;
  6. use app\admin\service\train\DingTalk;
  7. class InstitutionService
  8. {
  9. public static $push = false;
  10. /**
  11. * 获取最后上传时间
  12. * @param $institution_id
  13. * @return false|int
  14. */
  15. public static function getLastUploadTime($institution_id)
  16. {
  17. $datetime = model(ExamsModel::class)
  18. ->where('institution_id', $institution_id)
  19. ->order('createdAt' ,'desc')
  20. ->value('createdAt');
  21. if(!$datetime){
  22. return false;
  23. }
  24. return $datetime ? strtotime($datetime) : false;
  25. }
  26. /**
  27. * 提交机构异常记录
  28. * @param $ins_id
  29. * @param $ins_name
  30. * @param $last_time
  31. * @param $find_time
  32. * @return bool
  33. */
  34. public static function saveException($ins_id, $ins_name, $last_time, $find_time)
  35. {
  36. model(InsMonitoring::class)
  37. ->where('ins_id', $ins_id)
  38. ->update([
  39. 'status' => 1
  40. ]);
  41. $recordModel = model(InsMonitoringRecord::class);
  42. $exist = $recordModel
  43. ->where('institution_id', $ins_id)
  44. // ->where('status', 0)
  45. ->where('upload_time', $last_time)
  46. ->find();
  47. if($exist){
  48. $res = $recordModel->where('id', $exist['id'])->update([
  49. 'find_time' => $find_time
  50. ]);
  51. } else {
  52. $res = $recordModel->insert([
  53. 'institution_id' => $ins_id,
  54. 'institution_name' => $ins_name,
  55. 'upload_time' => $last_time,
  56. 'find_time' => $find_time
  57. ]);
  58. self::$push = true;
  59. }
  60. return $res !== false;
  61. }
  62. public static function pushException($push_type, $ins_id, $ins_name, $last_time)
  63. {
  64. switch ($push_type){
  65. case 0:
  66. // DingTalk::instance()
  67. break;
  68. default:
  69. return false;
  70. }
  71. return true;
  72. }
  73. }