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

<?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
]);
}
}