UseState::ON['value']])->whereNull('uid')->whereTime('end_time', '<=', date('Y-m-d H:i:s'))->limit(20)->select(); foreach ($data as $item) { Db::startTrans(); try { $PluginMarketingCoupon = PluginMarketingCoupon::where(['id' => $item->coupon_id])->find(); $PluginMarketingCoupon->num = Db::raw('num-1'); $PluginMarketingCoupon->expire_num = Db::raw('expire_num+1'); $PluginMarketingCoupon->save(); $item->delete(); Db::commit(); } catch (\Throwable $th) { Db::rollback(); Log::error('Process Coupon Expire Error:'.$th->getMessage(),$th); } } $data = PluginMarketingCouponCode::where(['state' => UseState::ON['value']])->whereNotNull('uid')->whereTime('expire_time', '<=', date('Y-m-d H:i:s'))->limit(20)->select(); foreach ($data as $item) { Db::startTrans(); try { $PluginMarketingCoupon = PluginMarketingCoupon::where(['id' => $item->coupon_id])->find(); $PluginMarketingCoupon->expire_num = Db::raw('expire_num+1'); $PluginMarketingCoupon->save(); $item->state=UseState::EXPIRE['value']; $item->save(); Db::commit(); } catch (\Throwable $th) { Db::rollback(); Log::error('Process UserCoupon Expire Error:'.$th->getMessage(),$th); } } } catch (\Throwable $th) { } }); } }