Collection.php 2.4 KB

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