You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
5.3 KiB
165 lines
5.3 KiB
<?php
|
|
|
|
namespace app\mall\controller\api;
|
|
|
|
use app\mall\model\MallProduct;
|
|
use app\mall\model\MallProductSpec;
|
|
use app\mall\model\MallSpikeConfig;
|
|
use app\mall\model\MallSpikeNotice;
|
|
use app\mall\model\MallSpikeProduct;
|
|
use think\facade\Request;
|
|
|
|
class Spike extends Base
|
|
{
|
|
|
|
/**
|
|
* 获取秒杀设置
|
|
* @date 2021-03-01
|
|
*/
|
|
public function getConfig()
|
|
{
|
|
$config_model = new MallSpikeConfig();
|
|
|
|
//获取商城LOGO
|
|
$config = $config_model->getConfig();
|
|
|
|
return sendSuccessMessage([
|
|
'config' => $config
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 获取场次列表
|
|
* @date 2022-08-26
|
|
*/
|
|
public function listScene()
|
|
{
|
|
$param = input('post.');
|
|
|
|
$spike_logic = new \app\mall\logic\Spike();
|
|
|
|
// 获取场次列表
|
|
$spike_time = $spike_logic->listScene();
|
|
|
|
$return_data = [
|
|
'spike_time' => $spike_time
|
|
];
|
|
|
|
return sendSuccessMessage($return_data);
|
|
}
|
|
|
|
/**
|
|
* 获取场次产品列表
|
|
* @date 2021-05-01
|
|
*/
|
|
public function getProductList()
|
|
{
|
|
$param = input('post.');
|
|
$token_data = TOKEN_DATA;
|
|
defined('USER_ID') || define('USER_ID', $token_data['user_id']);
|
|
|
|
$product_model = new MallSpikeProduct();
|
|
|
|
$where = [
|
|
['MallSpikeProduct.uid', '=', UID],
|
|
['start_time', '=', $param['s_time']],
|
|
['end_time', '=', $param['e_time']]
|
|
];
|
|
|
|
|
|
$field = 'id,product_id,price_spike,number,sales_number';
|
|
$list = $product_model->getProductList($where, $param['page'], $field);
|
|
|
|
return sendSuccessMessage([
|
|
'list' => $list
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 获取商品详情
|
|
* @date 2021-03-01
|
|
*/
|
|
public function getProductDetail()
|
|
{
|
|
$param = input('post.');
|
|
$token_data = TOKEN_DATA;
|
|
defined('USER_ID') || define('USER_ID', $token_data['user_id']);
|
|
|
|
$spike_product_model = new MallSpikeProduct();
|
|
$spec_model = new MallProductSpec();
|
|
$product_model = new MallProduct();
|
|
$notice_model = new MallSpikeNotice();
|
|
|
|
//获取秒杀产品
|
|
$data = $spike_product_model->getOneSpikeProduct(['id' => $param['id']], 'id,product_id,price_spike_min as price_min,price_spike_max as price_max,sales_number,number - sales_number as stock,number,start_time,end_time');
|
|
if ($data['start_time'] <= time() && $data['end_time'] > time()) { //所在场次状态和间隔时间
|
|
$data['status'] = 1; //1--进行中 2--未开始 3--已结束
|
|
$data['space_time'] = $data['end_time'] - time();
|
|
} else if ($data['start_time'] > time()) {
|
|
$data['status'] = 2;
|
|
$data['space_time'] = $data['start_time'] - time();
|
|
} else if ($data['end_time'] <= time()) {
|
|
$data['status'] = 3;
|
|
$data['space_time'] = 0;
|
|
}
|
|
$data['mallProductSku'] = $data['mallSpikeProductSku']; //赋值 为了和商城保持统一
|
|
unset($data['mallSpikeProductSku']);
|
|
unset($data['start_time']);
|
|
unset($data['end_time']);
|
|
|
|
//获取详情
|
|
$product = $product_model->getOneProduct([
|
|
['id', '=', $data['product_id']]
|
|
], 'id,name,stock,is_spec_open,price_original,cover_img,video_url,video_cover_img,img_path,description,review_number,sales_origial_number + sales_actual_number as sales_number');
|
|
$data['cover_img'] = $product['cover_img']; //封面图
|
|
$data['mallAttach'] = $product['mallAttach']; //服务保障
|
|
$data['price_original'] = $product['price_original']; //原价
|
|
$data['review_number'] = $product['review_number']; //评论数量
|
|
$data['name'] = $product['name']; //名称
|
|
$data['video_url'] = $product['video_url'];
|
|
$data['img_path'] = $product['img_path'];
|
|
$data['description'] = $product['description'];
|
|
$data['is_spec_open'] = $product['is_spec_open'];
|
|
$data['video_url'] = $product['video_url'];
|
|
$data['video_cover_img'] = $product['video_cover_img'];
|
|
|
|
//获取是否提醒
|
|
$data['has_appoint_notice'] = 0;
|
|
if (USER_ID) {
|
|
$notice_id = $notice_model->getOneData([
|
|
['user_agent', '=', USER_AGENT],
|
|
['user_id', '=', USER_ID],
|
|
['spike_id', '=', $param['id']]
|
|
], 'id');
|
|
if (!empty($notice_id)) {
|
|
$data['has_appoint_notice'] = 1;
|
|
}
|
|
}
|
|
|
|
|
|
// 同SKU同步封面图
|
|
$cover_img = [];
|
|
foreach ($product['mallProductSku'] as $k => $v) {
|
|
$cover_img[$v['sku']] = $v['cover_img'];
|
|
}
|
|
foreach ($data['mallProductSku'] as $k => $v) {
|
|
// $data['mallProductSku'][$k]['price'] = $data['mallProductSku'][$k]['price_spike'];
|
|
// $data['mallProductSku'][$k]['stock'] = $data['mallProductSku'][$k]['number'];
|
|
$data['mallProductSku'][$k]['cover_img'] = $cover_img[$v['sku']];
|
|
}
|
|
|
|
// 获取商品SPEC
|
|
$spec = $spec_model->listSpec([
|
|
['product_id', '=', $data['product_id']]
|
|
], 'id,spec_id,spec_title');
|
|
$data['spec'] = $spec;
|
|
|
|
//分享到H5的跳转链接
|
|
$data['h5_href'] = Request::domain() . '/h5/#/pages/common/download';
|
|
|
|
return sendSuccessMessage([
|
|
'data' => $data
|
|
]);
|
|
}
|
|
}
|