Example #1
0
 /**
  * 开通服务(修改余额,到期时间,等级)
  * @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;
     }
 }
Example #2
0
 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' => '获取数据失败']);
     }
 }