1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- /**
- * AccountOrderFire.php UTF-8
- *
- *
- * @date : 2018/6/15 18:41
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : luowei <lw@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huolib\queue\job;
- use huo\controller\pay\ApplePay;
- use huo\logic\member\AccountLogic;
- use huo\model\account\AccountGoodsModel;
- use huo\model\account\AccountOrderModel;
- use huolib\constant\AccountConst;
- use huolib\constant\OrderConst;
- use think\Log;
- use think\queue\Job;
- class AccountOrderFire extends Fire {
- /**
- * fire方法是消息队列默认调用的方法
- *
- * @param Job $job 当前的任务对象
- * @param array|mixed $data 发布任务时自定义的数据
- */
- public function fire(Job $job, $data) {
- $_is_job_done = $this->doJob($data);
- if ($_is_job_done) {
- //如果任务执行成功, 记得删除任务
- $job->delete();
- } else {
- if ($job->attempts() > 3) {
- /* 记录队列值 */
- Log::write(
- "func=".__FUNCTION__."&class=".__CLASS__.'&queue='.$job->getQueue().'&name='.$job->getName()
- .'&data='.json_encode($data).'&error',
- LOG::QUEUE
- );
- $job->delete();
- }
- }
- }
- /**
- * 根据消息中的数据进行实际的业务处理
- *
- * @param array $data 发布任务时自定义的数据
- *
- * @return bool 任务执行的结果
- */
- public function doJob($data) {
- if (!isset($data['order_info'])) {
- return false;
- }
- $_order_info = $data['order_info'];
- if (!isset($_order_info['id'])) {
- return false;
- }
- if (!isset($_order_info['ags_id'])) {
- return false;
- }
- //订单失效
- (new AccountOrderModel())->updateData([
- 'status' => OrderConst::PAY_STATUS_FAIL,
- ], $_order_info['id']);
- //小号商品重新上架
- (new AccountGoodsModel())->updateData([
- 'status' => AccountConst::STATUS_PULL_ON_SHELVES,
- ], $_order_info['ags_id']);
- return true;
- }
- }
|