| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- /**
- * Created by PhpStorm.
- * User: yunzhong
- * Date: 2020/10/19
- * Time: 15:03
- */
- namespace Yunshop\PhoneBill\service;
- use app\common\models\Order;
- use app\common\services\Session;
- use app\common\models\UniAccount;
- use app\frontend\modules\order\services\OrderService;
- use Yunshop\PhoneBill\models\PhoneBillOrder;
- use app\common\modules\refund\services\RefundService;
- class TimeTaskService
- {
- public function handle()
- {
- // 获取所有公众号
- $uniAccount = UniAccount::getEnable();
- // 循环每个公众号
- foreach ($uniAccount as $u) {
- // 设置公众号到系统
- \YunShop::app()->uniacid = $u->uniacid;
- \Setting::$uniqueAccountId = $u->uniacid;
- $this->settlementOrder();
- }
- }
- protected function settlementOrder()
- {
- $phoneBillOrder = PhoneBillOrder::where('status', 4)->get();
- if (!$phoneBillOrder->isEmpty()) {
- foreach ($phoneBillOrder as $value) {
- $order = Order::find($value['order_id']);
- if ($order) {
- try {
- \Illuminate\Support\Facades\DB::transaction(function () use ($order) {
- Session::set('member_id', $order->uid);
- $reFundResult = (new RefundService())->fastRefund($order->id);
- PhoneBillOrder::where('order_id', $order->id)->update(['status' => 5]);
- Session::set('member_id', 0);
- return $reFundResult;
- });
- } catch (\Exception $error) {
- $error = $error->getMessage();
- \Log::debug("PhoneBill订单退款失败", $error);
- continue;
- }
- }
- }
- }
- }
- }
|