| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- <?php
- namespace app\user\controller;
- use think\Lang;
- class Renewal extends UserControl
- {
- public function _initialize()
- {
- parent::_initialize(); // TODO: Change the autogenerated stub
- Lang::load(APP_PATH . 'admin/lang/' . config('default_lang') . '/db.lang.php');
- }
- public function index()
- {
- $condition['user_id'] = session('user_id');
- $type = input('get.type');
- $nowDate = date('Y-m-d');
- if (strlen($type)) {
- if ($type > 0) {
- $maturityTime = date('Y-m-d', strtotime($type . " day"));
- $condition['userProduct_maturityTime'] = array('between', array($nowDate, $maturityTime));
- } else {
- $condition['userProduct_maturityTime'] = array('<', $nowDate);
- }
- }
- $userProduct = model('Userproduct')->getUserProduct($condition);
- $fatherProduct = model('product')->getProduct($condition);
- $productData = [];
- foreach ($fatherProduct as $v) {
- $productData[$v->product_id] = $v->product_name;
- }
- foreach ($userProduct as $key => $v) {
- $userProduct[$key]->fatherProduct = $productData[$v->product_pid];
- $userProduct[$key]->status = $nowDate > $v->userProduct_maturityTime ? '已过期' : '正常';
- }
- $this->assign('userProduct', $userProduct);
- $this->assign('show_page', $userProduct->render());
- $getRenewal = model('renewal')->getRenewal();
- $this->assign('renewalType', $getRenewal);
- return $this->fetch('index');
- }
- public function renewal()
- {
- $userId = session('user_id');
- $type = input('post.type');
- $userProduct_id = input('post.renewal_id');
- $product_id = input('post.product_id');
- $product = model('product')->getProductWhere(['product_id' => $product_id, 'product_status' => 1]);
- $fartherProduct = model('product')->getProductWhere(['product_id' => $product->product_pid]);
- if (!$product) {
- return ["msg" => "错误:该产品已停售"];
- }
- $userInfo = model('userinfo')->getInfo($userId);
- switch (intval($type)) {
- case 1:
- $money = $product->product_TypeOne;
- break;
- case 2:
- $money = $product->product_TypeTwo;
- break;
- case 3:
- $money = $product->product_TypeThree;
- break;
- default:
- $money = $product->product_TypeFour;
- }
- if ($userInfo->userInfo_money >= $money) {
- $findRenewal = model('renewal')->findRenewal(['renewal_status' => 1, 'renewal_identity' => $type]);
- } else {
- return ["msg" => "错误:您的余额不足"];
- }
- if (!$findRenewal) {
- return ["msg" => "错误:该期限已不支持购买"];
- }
- $day = $findRenewal->renewal_day;
- $cashMoney = $userInfo->userInfo_money - $money;
- $dbUserInfo = model('Userinfo');
- $dbUserProduct = model('Userproduct');
- $dbOrder = model('Order');
- $capitalMovements = model('CapitalMovements');
- $dbUserInfo->startTrans();
- $dbUserProduct->startTrans();
- $dbOrder->startTrans();
- $capitalMovements->startTrans();
- try {
- $dbUserInfo->updateInfo($userId, ['userInfo_money' => $cashMoney]);
- $nowDate = date('Y-m-d');
- $userProduct = model('Userproduct')->findUserProduct(['userProduct_id' => $userProduct_id]);
- $data['userProduct_dayNumber'] = $userProduct->userProduct_dayNumber + $day;
- $orderID = OrderID();
- $data['userProduct_identity'] = $orderID;
- $data['userProduct_buyTime'] = $nowDate;
- if ($userProduct->userProduct_maturityTime > $nowDate) {
- $data['userProduct_maturityTime'] = date('Y-m-d', strtotime(intval($day) . " day", strtotime($userProduct->userProduct_maturityTime)));
- } else {
- $data['userProduct_maturityTime'] = date('Y-m-d', strtotime(intval($day) . " day"));
- }
- $dbUserProduct->updateUserProduct(['userProduct_id' => $userProduct_id], $data);
- $addOrderData = [
- 'order_identity' => $orderID,
- 'user_id' => $userId,
- 'product_id' => $product_id,
- 'order_dayNumber' => $day,
- 'order_buyTime' => $nowDate,
- 'order_money' => $money,
- ];
- $dbOrder->addOrder($addOrderData);
- $cplMvtData = [
- 'user_id' => $userId,
- 'capitalMovements_describe' => '购买服务:' . $fartherProduct->product_name . ' ▪ ' . $product->product_name,
- 'capitalMovements_identity' => $orderID,
- 'capitalMovements_create' => $nowDate,
- 'capitalMovements_update' => $nowDate,
- 'capitalMovements_money' => $money,
- 'capitalMovements_type' => 2,
- 'capitalMovements_cash' => $cashMoney,
- 'capitalMovements_operator' => $userId,
- ];
- $capitalMovements->add($cplMvtData);
- // 提交事务
- $dbUserInfo->commit();
- $dbUserProduct->commit();
- $dbOrder->commit();
- $capitalMovements->commit();
- return ["msg" => "续费成功"];
- } catch (\Exception $e) {
- // 回滚事务
- $dbUserInfo->rollBack();
- $dbUserProduct->rollBack();
- $dbOrder->rollBack();
- $capitalMovements->rollBack();
- return ["msg" => "操作失败"];
- }
- }
- }
- ?>
|