Collection.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace app\admin\model\teacher;
  3. use app\admin\model\teacher\Exams;
  4. use think\Model;
  5. use traits\model\SoftDelete;
  6. class Collection extends Model
  7. {
  8. use SoftDelete;
  9. // 表名
  10. protected $name = 'real_exam_collection';
  11. // 自动写入时间戳字段
  12. protected $autoWriteTimestamp = 'int';
  13. // 定义时间戳字段名
  14. protected $createTime = 'createtime';
  15. protected $updateTime = 'updatetime';
  16. protected $deleteTime = 'deletetime';
  17. // 追加属性
  18. protected $append = [
  19. 'sim_type_text',
  20. 'yikao_count',
  21. 'yikao_xl_count',
  22. 'user_count'
  23. ];
  24. protected static function init()
  25. {
  26. self::beforeUpdate(function ($row) {
  27. if(!empty($row['createtime'])){
  28. $pk = $row->getPk();
  29. $create_time = date('Y-m-d H:i:s',$row['createtime']);
  30. $update_time = date('Y-m-d H:i:s',$row['updatetime']);
  31. $row->getQuery()->where($pk, $row[$pk])->update(['create_time' => $create_time,'update_time'=>$update_time]);
  32. }
  33. });
  34. self::afterInsert(function ($row) {
  35. if(!empty($row['createtime'])){
  36. $pk = $row->getPk();
  37. $create_time = date('Y-m-d H:i:s',$row['createtime']);
  38. $update_time = date('Y-m-d H:i:s',$row['updatetime']);
  39. $row->getQuery()->where($pk, $row[$pk])->update(['create_time' => $create_time,'update_time'=>$update_time]);
  40. }
  41. });
  42. }
  43. public function getSimTypeTextAttr($value, $data)
  44. {
  45. $sim_type_text = '';
  46. if($data['sim_type']=='0001'){
  47. $sim_type_text = 'FZD04B型侦毒器';
  48. }else if ($data['sim_type']=='0002'){
  49. $sim_type_text = 'FZB006型毒剂报警器';
  50. }else if ($data['sim_type']=='0003'){
  51. $sim_type_text = '防化兵用毒剂报警器';
  52. }
  53. return $sim_type_text;
  54. }
  55. public function getYikaoCountAttr($value, $data)
  56. {
  57. return Exams::where(['exam_collection_id'=>$data['exam_collection_id'],'exam_collection_type'=>3,'starttime'=>['>',0]])->count();
  58. }
  59. public function getYikaoXlCountAttr($value, $data)
  60. {
  61. return Exams::where(['exam_collection_id'=>$data['exam_collection_id'],'exam_collection_type'=>1,'starttime'=>['>',0]])->count();
  62. }
  63. public function getUserCountAttr($value, $data)
  64. {
  65. return Exams::where(['exam_collection_id'=>$data['exam_collection_id']])->count();
  66. }
  67. public function allexam()
  68. {
  69. return $this->hasMany('Exams','exam_collection_id','exam_collection_id')->where('deletetime is null');
  70. }
  71. }