/** * 开通服务(修改余额,到期时间,等级) * @param $user_id * @param $orderInfo * @param int $level * @return bool * @throws \yii\db\Exception */ public function changeMatureTime($user_id, $orderInfo, $level = 0, $isAdmin = false) { $goods = ArrayHelper::toArray(ChargeGoods::getInstance()->findOne($orderInfo['charge_goods_id'])); $userInfo = $this->getUserById($user_id); // 订单金额是否大于余额 if (!$isAdmin) { if ($orderInfo['money'] > $userInfo['balance']) { return false; } } $db = $this->getDb(); $transaction = $db->beginTransaction(); // 启动事务 // 计算时间 $time = $goods['value'] * 30 * 24 * 3600; // vip时间(月) if (1 == $goods['giveType'] && $goods['give'] > 0) { $time += $goods['give'] * 24 * 3600; // 赠送的时间(天) } // 修改余额 $user = $this->changeBalance($user_id, $goods['price']); if ($userInfo['honesty_value'] & 16) { $nData['honesty_value'] = intval($userInfo['honesty_value']) - 16; UserInformation::getInstance()->updateUserInfo($user_id, $nData); } // 修改到期时间 $_user_information_table = $this->tablePrefix . 'user_information'; // 表名 $userInfo['mature_time'] = YII_BEGIN_TIME > $userInfo['mature_time'] ? YII_BEGIN_TIME + $time : $userInfo['mature_time'] + $time; $level = $goods['level']; if ($level != 0) { $sql = "UPDATE {$_user_information_table} SET info = JSON_REPLACE(info,'\$.level','" . $level . "'), mature_time = " . $userInfo['mature_time'] . " WHERE user_id={$user_id}"; } else { $sql = "UPDATE {$_user_information_table} SET mature_time = " . $userInfo['mature_time'] . " WHERE user_id={$user_id}"; } $info = $db->createCommand($sql)->execute(); if ($user && $info) { $transaction->commit(); // 写入用户消费日志表 $goods['receive_name'] = '嘉瑞百合缘'; $goods['type'] = 1; ConsumptionLog::getInstance()->addConsumptionLog($user_id, $goods); return true; } else { $transaction->rollBack(); return false; } }
public function actionConsumptionList() { $user_id = Cookie::getInstance()->getCookie('bhy_id')->value; if ($data = ConsumptionLog::getInstance()->getUserConsumptionLogList($user_id)) { $this->renderAjax(['status' => 1, 'data' => $data, 'msg' => '获取数据成功']); } else { $this->renderAjax(['status' => 0, 'data' => [], 'msg' => '获取数据失败']); } }