Collection.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace app\admin\model\teacher;
  3. use think\Model;
  4. use traits\model\SoftDelete;
  5. use app\admin\model\teacher\Exams;
  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. ];
  22. protected static function init()
  23. {
  24. self::beforeUpdate(function ($row) {
  25. if(!empty($row['createtime'])){
  26. $pk = $row->getPk();
  27. $create_time = date('Y-m-d H:i:s',$row['createtime']);
  28. $update_time = date('Y-m-d H:i:s',$row['updatetime']);
  29. $row->getQuery()->where($pk, $row[$pk])->update(['create_time' => $create_time,'update_time'=>$update_time]);
  30. }
  31. });
  32. self::afterInsert(function ($row) {
  33. if(!empty($row['createtime'])){
  34. $pk = $row->getPk();
  35. $create_time = date('Y-m-d H:i:s',$row['createtime']);
  36. $update_time = date('Y-m-d H:i:s',$row['updatetime']);
  37. $row->getQuery()->where($pk, $row[$pk])->update(['create_time' => $create_time,'update_time'=>$update_time]);
  38. }
  39. });
  40. }
  41. public function getSimTypeTextAttr($value, $data)
  42. {
  43. $sim_type_text = '';
  44. if($data['sim_type']=='0001'){
  45. $sim_type_text = 'FZD04B型侦毒器';
  46. }else if ($data['sim_type']=='0002'){
  47. $sim_type_text = 'FZB006型毒剂报警器';
  48. }else if ($data['sim_type']=='0003'){
  49. $sim_type_text = '防化兵用毒剂报警器';
  50. }
  51. return $sim_type_text;
  52. }
  53. public function getYikaoCountAttr($value, $data)
  54. {
  55. return Exams::where(['exam_collection_id'=>$data['exam_collection_id'],'exam_collection_type'=>3,'starttime'=>['>',0]])->count();
  56. }
  57. public function allexam()
  58. {
  59. return $this->hasMany('Exams','exam_collection_id','exam_collection_id')->where('deletetime is null');
  60. }
  61. }