| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <?php
- namespace addons\SecondaryCard\console\controllers;
- use addons\ReservationService\common\enums\ReservationServiceEnum;
- use addons\ReservationService\common\models\ReservationServiceOrder;
- use addons\SecondaryCard\common\enums\SecondaryCardEnum;
- use addons\SecondaryCard\common\models\SecondaryCard;
- use addons\SecondaryCard\common\models\SecondaryCardOrder;
- use addons\SecondaryCard\common\service\SecondaryCardOrderService;
- use addons\Store\common\models\Store;
- use addons\Store\common\models\StoreOrder;
- use common\enums\OrderStatusEnum;
- use common\enums\StatusEnum;
- use common\models\mall\Mall;
- use common\models\mall\MallAddons;
- use yii\console\Controller;
- use yii\console\ExitCode;
- use common\models\order\Order;
- class IndexCrontabController extends Controller
- {
- public function actionOrderRefund()
- {
- try {
- $malls = Mall::getEnableMallList();
- $mall_ids = array_column($malls, 'id');
- $time = time();
- foreach ($mall_ids as $mall_id) {
- $is_install = MallAddons::isInstall($mall_id, 'SecondaryCard');
- if (!$is_install) continue;
- $list = SecondaryCardOrder::find()->where(['mall_id' => $mall_id])
- ->andWhere(['<=', 'expire_time', $time])
- ->andWhere(['>', 'verifiable_times', 0])
- ->andWhere(['>', 'open_time', 0])
- ->andWhere(['>', 'pay_money', 0])
- ->andWhere(['!=', 'order_status', SecondaryCardEnum::REFUNDED])
- ->with('secondaryCard')->all();
- foreach ($list as $item) {
- try {
- if ($item['open_type'] == SecondaryCardEnum::OPEN_TYPE_EXCHANGE) {
- $item->order_status = SecondaryCardEnum::EXPIRED;
- $item->save();
- } else {
- if ($item['secondaryCard']['refund_type'] == 0) {
- $params['mall_id'] = $mall_id;
- $params['id'] = $item['id'];
- $params['user_id'] = $item['user_id'];
- SecondaryCardOrderService::orderRefund($params);
- } else {
- $item->order_status = SecondaryCardEnum::EXPIRED;
- $item->save();
- }
- }
- $list = ReservationServiceOrder::lists([
- 'where' => [
- ['secondary_card_no' => $item['order_no']],
- ['service_status' => [
- ReservationServiceEnum::RESERVE_ORDER_STATUS_NORMAL,
- ReservationServiceEnum::RESERVE_ORDER_STATUS_TALKING,
- ]]
- ]
- ], false);
- if (!empty($list)) {
- $ids = array_column($list, 'id');
- $order_ids = array_column($list, 'order_id');
- $order_list = Order::lists(['where' => [
- ['id' => $order_ids]
- ]
- ]
- );
- $order_nos = array_column($order_list, 'order_no');
- if ($item['secondaryCard']['store_type'] == SecondaryCardEnum::STORE_TYPE_O2O) {
- StoreOrder::updateAll(['order_status' => OrderStatusEnum::REPEAL, 'status' => StatusEnum::DISABLED], ['order_no' => $order_nos]);
- }
- Order::updateAll(['order_status' => OrderStatusEnum::REPEAL,'status' => StatusEnum::DISABLED], ['id' => $order_ids]);
- ReservationServiceOrder::updateAll(['service_status' => ReservationServiceEnum::RESERVE_ORDER_STATUS_CLOSED], ['id' => $ids]);
- }
- } catch (\Exception $e) {
- echo '次卡号:' . $item['order_no'] . '退款失败' . $e->getMessage();
- }
- }
- }
- return ExitCode::OK;
- } catch (\Exception $e) {
- \Yii::error($e->getMessage());
- return false;
- }
- }
- public function actionPutDown()
- {
- try {
- $malls = Mall::getEnableMallList();
- $mall_ids = array_column($malls, 'id');
- foreach ($mall_ids as $mall_id) {
- $is_install = MallAddons::isInstall($mall_id, 'SecondaryCard');
- if (!$is_install) continue;
- $list = SecondaryCard::find()->where(['mall_id' => $mall_id])
- ->andWhere(['>', 'sell_time_start', 0])
- ->andWhere(['<', 'sell_time_end', time()])
- ->all();
- foreach ($list as $item) {
- $item->is_on_sales = 0;
- $item->save();
- }
- }
- return ExitCode::OK;
- } catch (\Exception $e) {
- \Yii::error($e->getMessage());
- return false;
- }
- }
- }
|