| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- namespace addons\CloudStockTwo\console\controllers;
- use addons\CloudStockTwo\common\models\CloudStockTwoAgent;
- use addons\CloudStockTwo\common\sms\RewardMessage;
- use addons\CloudStockTwo\common\sms\SmsConfig;
- use common\enums\AddonsEnum;
- use common\enums\OrderStatusEnum;
- use common\enums\StatusEnum;
- use common\enums\UserWalletEnum;
- use common\models\common\CapitalLog;
- use common\models\mall\Mall;
- use common\models\mall\MallAddons;
- use common\models\order\Order;
- use common\models\order\OrderDetail;
- use common\models\user\User;
- use Overtrue\EasySms\EasySms;
- use Overtrue\EasySms\Exceptions\NoGatewayAvailableException;
- use services\common\UserWalletService;
- use yii\console\Controller;
- class IndexController extends Controller
- {
- public function actionSettlement()
- {
- $mall_list = Mall::getEnableMallList(true);
- foreach ($mall_list as $mall) {
- if (MallAddons::isInstall($mall['id'], AddonsEnum::ADDONS_NAME_CLOUD_STOCK_TWO) == 0) continue;
- $params['where'] = [
- ['mall_id' => $mall['id']],
- ['source_table' => OrderDetail::tableName()],
- ['from_type' => AddonsEnum::ADDONS_NAME_CLOUD_STOCK_TWO],
- ['capital_type' => [UserWalletEnum::PAYMENT_FOR_GOODS_BUY]],
- ['status' => CapitalLog::STATUS_WAIT_SEND]
- ];
- //货款
- $wallet_type = 'commission';
- CapitalLog::$capitalType = "{$wallet_type}_frozen";
- $commission_list = CapitalLog::lists($params);
- if (empty($commission_list)) continue;
- $source_table_id = array_column($commission_list, 'source_table_id');
- $order_detail_list = OrderDetail::lists(['where' => [['id' => $source_table_id]], 'select' => 'id,order_id', 'index' => 'id']);
- $order_ids = array_column($order_detail_list, 'order_id');
- $order_list = Order::lists(['where' => [['id' => $order_ids], ['order_status' => OrderStatusEnum::ACCOMPLISH]], 'select' => 'id', 'index' => 'id']);
- $user_ids = array_column($commission_list,'user_id');
- $user_arr = User::lists(['where'=>[['id'=>$user_ids]],'select'=>'id,mobile','index'=>'id']);
- $obj = new CloudStockTwoAgent();
- foreach ($commission_list as $item) {
- if (empty($order_detail_list[$item['source_table_id']])) continue;
- $order_id = $order_detail_list[$item['source_table_id']]['order_id'];
- if (empty($order_list[$order_id])) continue;
- $res = UserWalletService::unfrozen($item['id'], $wallet_type);
- if ($res) {
- $cloud_stock_agent_model = CloudStockTwoAgent::findOne(['user_id' => $item['user_id'], 'status' => StatusEnum::ENABLED]);
- $cloud_stock_agent_model->frozen_price -= $item['change_num'];
- if ($cloud_stock_agent_model->frozen_price < 0) $cloud_stock_agent_model->frozen_price = 0;
- $cloud_stock_agent_model->save();
- $obj->sendGoodsMoneyMessage($user_arr,$item);
- }
- }
- }
- }
- }
|