89 lines
2.9 KiB
PHP
89 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace app\api\controller\app\vip;
|
|
|
|
use app\common\controller\Api;
|
|
use app\common\library\pay\VirtualPayService;
|
|
|
|
/**
|
|
* 付费会员卡
|
|
*/
|
|
class Card extends Api
|
|
{
|
|
protected $noNeedLogin = [];
|
|
protected $noNeedRight = ['*'];
|
|
|
|
protected $model = null;
|
|
protected $cardPrivilegeModel = null;
|
|
|
|
public function _initialize()
|
|
{
|
|
parent::_initialize();
|
|
|
|
\app\common\model\fill\Handle::check('app_config','vip');
|
|
$this->model = new \app\api\model\app\vip\Card;
|
|
$this->cardPrivilegeModel = new \app\api\model\app\vip\CardPrivilege;
|
|
$this->cardUserModel = new \app\api\model\app\vip\CardUser;
|
|
}
|
|
|
|
/**
|
|
* 获取付费会员卡列表
|
|
* @return void
|
|
*/
|
|
public function getCardList()
|
|
{
|
|
$list = $this->model->where([
|
|
'status' => 1
|
|
])->select();
|
|
|
|
$isVirtualPay = VirtualPayService::isUseVirtualPay('vipcard');
|
|
|
|
if ($list) {
|
|
foreach ($list as &$item) {
|
|
$skuData = json_decode($item->sku, true);
|
|
$item->is_virtual_pay = $isVirtualPay;
|
|
if ($item->is_virtual_pay && is_array($skuData)) {
|
|
foreach ($skuData as &$sku) {
|
|
$sku = VirtualPayService::convertPriceFields($sku, ['price']);
|
|
}
|
|
unset($sku);
|
|
}
|
|
$item->sku = $skuData;
|
|
|
|
$privilegeFreeGoods = $this->cardPrivilegeModel->getPrivilegeGoods($item->id, 'free');
|
|
if (!empty($privilegeFreeGoods)) {
|
|
foreach ($privilegeFreeGoods as &$option) {
|
|
$discountPrice = \app\api\model\app\vip\CardPrivilege::getDiscountPrice($option['price'], 0);
|
|
$option['price_marking'] = $discountPrice['price_marking'];
|
|
$option['price'] = $discountPrice['price'];
|
|
}
|
|
}
|
|
|
|
$item->privilege_free_goods = $privilegeFreeGoods;
|
|
|
|
$privilegeDiscountGoods = $this->cardPrivilegeModel->getPrivilegeGoods($item->id, 'discount');
|
|
if (!empty($privilegeDiscountGoods)) {
|
|
foreach ($privilegeDiscountGoods as &$option) {
|
|
$discountPrice = \app\api\model\app\vip\CardPrivilege::getDiscountPrice($option['price'], $item->privilege_discount_val);
|
|
$option['price_marking'] = $discountPrice['price_marking'];
|
|
$option['price'] = $discountPrice['price'];
|
|
}
|
|
}
|
|
|
|
$item->privilege_discount_goods = $privilegeDiscountGoods;
|
|
}
|
|
}
|
|
$this->success('获取成功', $list);
|
|
}
|
|
|
|
/**
|
|
* 获取用户开通会员
|
|
* @return void
|
|
*/
|
|
public function getUserVip()
|
|
{
|
|
$data = \app\common\model\app\vip\CardUser::getUserVipInfo($this->auth->id);
|
|
$this->success('获取成功', $data);
|
|
}
|
|
}
|