Task.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace app\admin\model\teacher;
  3. use app\admin\library\Auth;
  4. use app\admin\model\department\Department;
  5. use think\Exception;
  6. use think\Model;
  7. use think\Db;
  8. use traits\model\SoftDelete;
  9. class Task extends Model
  10. {
  11. use SoftDelete;
  12. // 表名
  13. protected $name = 'sim_task';
  14. // 自动写入时间戳字段
  15. protected $autoWriteTimestamp = 'int';
  16. // 定义时间戳字段名
  17. protected $createTime = 'createtime';
  18. protected $updateTime = 'updatetime';
  19. protected $deleteTime = 'deletetime';
  20. // 追加属性
  21. protected $append = [
  22. 'xianxiang_count',
  23. 'buwei_count'
  24. ];
  25. protected static function init()
  26. {
  27. $auth = Auth::instance();
  28. self::beforeUpdate(function ($row) {
  29. if(!empty($row['createtime'])){
  30. $pk = $row->getPk();
  31. $create_time = date('Y-m-d H:i:s',$row['createtime']);
  32. $update_time = date('Y-m-d H:i:s',$row['updatetime']);
  33. $row->getQuery()->where($pk, $row[$pk])->update(['create_time' => $create_time,'update_time'=>$update_time]);
  34. }
  35. });
  36. self::afterInsert(function ($row) {
  37. if(!empty($row['createtime'])){
  38. $pk = $row->getPk();
  39. $create_time = date('Y-m-d H:i:s',$row['createtime']);
  40. $update_time = date('Y-m-d H:i:s',$row['updatetime']);
  41. $row->getQuery()->where($pk, $row[$pk])->update(['create_time' => $create_time,'update_time'=>$update_time]);
  42. }
  43. });
  44. }
  45. public function getXianxiangCountAttr($value, $data)
  46. {
  47. $faultid = Db::name('task_fault')->where('task_id',$data['task_id'])->column('fault_id');
  48. $faultpid = Db::name('fault')->where('fault_id','in',$faultid)->where('sim_type',$data['sim_type'])->column('parent_fault_id');
  49. return Db::name('fault')->where('fault_id','in',$faultpid)->where('sim_type',$data['sim_type'])->count();
  50. }
  51. public function getBuweiCountAttr($value, $data){
  52. return Db::name('task_fault')->where('task_id',$data['task_id'])->count();
  53. }
  54. }