TimedTask.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use app\common\model\Order;
  5. use think\Db;
  6. use think\Exception;
  7. /**
  8. * 定时任务
  9. */
  10. class TimedTask extends Api
  11. {
  12. protected $noNeedLogin = ['*'];
  13. protected $noNeedRight = '*';
  14. /**
  15. * 订单过期自动取消
  16. * @return void
  17. */
  18. public function cancellation_order(){
  19. //订单过期自动取消
  20. $orderlist = Order::all(function ($query){
  21. $query->where(['type'=>1,'status'=>1])->field('id,create_time');
  22. });
  23. foreach ($orderlist as $k=>$value){
  24. if($value){
  25. $create_time = strtotime($value['create_time']) + 1800;
  26. if($create_time < time()){
  27. Db::startTrans();
  28. try {
  29. Order::where('id',$value['id'])->update(['status'=>0]);
  30. Db::commit();
  31. }catch (Exception $exception){
  32. Db::rollback();
  33. $this->error($exception);
  34. }
  35. }
  36. }
  37. }
  38. //报价单过期自动取消
  39. $pjdorderlist = Order::all(function ($query){
  40. $query->where(['type'=>2,'status'=>1])->field('id,valid_time');
  41. });
  42. foreach ($pjdorderlist as $k=>$v){
  43. $valid_time = strtotime($v['valid_time']);
  44. if($valid_time < time()){
  45. Db::startTrans();
  46. try {
  47. Order::where('id',$v['id'])->update(['status'=>0]);
  48. Db::commit();
  49. }catch (Exception $exception){
  50. Db::rollback();
  51. $this->error($exception);
  52. }
  53. }
  54. }
  55. }
  56. }