diff --git a/app/api/model/Goods.php b/app/api/model/Goods.php
index 1554e55d..9a42571c 100644
--- a/app/api/model/Goods.php
+++ b/app/api/model/Goods.php
@@ -318,7 +318,45 @@ class Goods extends GoodsModel
return $info;
}
-
+ /**
+ * 商品主图、商品轮播图、商品详情处理
+ * [dealGoodsImage description]
+ * @param [type] &$goodsInfo [description]
+ * @return [type] [description]
+ */
+ public function dealGoodsImage(&$goodsInfo){
+ switch ($goodsInfo->channel) {
+ case 'jd':
+ $jd = new \app\common\service\Jd();
+ $res = $jd->getGoodsMainImageAndDetail($goodsInfo->goods_no);
+ if ($res) {
+ $goods_images = [];
+ foreach ($res['mainImageList'] as $seq => $image) {
+ $goods_images[] = [
+ 'file_id' => $seq,
+ 'file_type' => 10,
+ 'preview_url' => $image,
+ 'external_url' => $image,
+ ];
+ }
+ $goodsInfo->goods_images = $goods_images;
+ $goodsInfo->goods_image = $res['mainImageList'][0];
+ $content = "";
+ foreach ($res['infoImageList'] as $value) {
+ $content .= '

';
+ }
+ $goodsInfo->content = $content;
+ }
+ break;
+ case 'sn':
+ // code...
+ break;
+ default:
+ // code...
+ break;
+ }
+
+ }
/**
* 获取商品详情 (详细数据用于页面展示)
* @param int $goodsId 商品ID
@@ -342,6 +380,8 @@ class Goods extends GoodsModel
}
// 获取商品记录
$goodsInfo = $this->getGoodsMain($goodsId, $with, $verifyStatus);
+
+ $this->dealGoodsImage($goodsInfo);
// 商品规格列表
$goodsInfo['specList'] = GoodsSpecRelModel::getSpecList($goodsInfo['goods_id']);
@@ -442,6 +482,7 @@ class Goods extends GoodsModel
{
// 获取商品记录
$goodsInfo = static::detail($goodsId, $with);
+
if ($goodsInfo->skuList) {
foreach ($goodsInfo->skuList as &$value) {
$goods_image = GoodsImage::where('goods_id', $value['goods_id'])->order("id asc")->find();
@@ -518,7 +559,7 @@ class Goods extends GoodsModel
return $this->setGoodsData($goodsInfo, function ($goods) {
// 计算并设置商品会员价
- $this->getEnableGradeMoney() && $this->setGoodsGradeMoney($goods);
+ //$this->getEnableGradeMoney() && $this->setGoodsGradeMoney($goods);
//计算plus 分销价格
$this->setGoodsMoney($goods);
@@ -722,7 +763,7 @@ class Goods extends GoodsModel
'is_limit' => $data['is_limit'],
'limit_times' => $data['limit_times'],
'sec_start_time' => $data['sec_start_time'],
- 'sec_end_time' => $data['sec_end_time'],
+ // 'sec_end_time' => $data['sec_end_time'],
'sec_hour' => $data['sec_hour'],
];
$skuData->save($up_data);
diff --git a/app/common.php b/app/common.php
index a3123d0a..98252ff5 100644
--- a/app/common.php
+++ b/app/common.php
@@ -518,3 +518,68 @@ if (!function_exists('downLoadExcel')){
exit;
}
}
+
+/**
+ * CURL请求
+ * @param $url 请求url地址
+ * @param $method 请求方法 get post
+ * @param null $postfields post数据数组
+ * @param array $headers 请求header信息
+ * @param bool|false $debug 调试开启 默认false
+ * @return mixed
+ */
+//Modified by Shayne Song to solve problem that OFPAY video vip card buying interface need 15 seconds to return result on 2018/03/19.
+function httpRequest($url, $method="GET", $postfields = null, $headers = array(), $debug = false, $timeout = 10) {
+ $method = strtoupper($method);
+ $ci = curl_init();
+ /* Curl settings */
+ curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
+ curl_setopt($ci, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");
+ curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 60); /* 在发起连接前等待的时间,如果设置为0,则无限等待 */
+ curl_setopt($ci, CURLOPT_TIMEOUT, $timeout); /* 设置cURL允许执行的最长秒数 */
+ curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
+ switch ($method) {
+ case "POST":
+ curl_setopt($ci, CURLOPT_POST, true);
+ if (!empty($postfields)) {
+ $tmpdatastr = is_array($postfields) ? http_build_query($postfields) : $postfields;
+ curl_setopt($ci, CURLOPT_POSTFIELDS, $tmpdatastr);
+ }
+ break;
+ default:
+ curl_setopt($ci, CURLOPT_CUSTOMREQUEST, $method); /* //设置请求方式 */
+ break;
+ }
+ $ssl = preg_match('/^https:\/\//i',$url) ? TRUE : FALSE;
+ curl_setopt($ci, CURLOPT_URL, $url);
+ if($ssl){
+ curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
+ curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, FALSE); // 不从证书中检查SSL加密算法是否存在
+ }
+ //curl_setopt($ci, CURLOPT_HEADER, true); /*启用时会将头文件的信息作为数据流输出*/
+ curl_setopt($ci, CURLOPT_FOLLOWLOCATION, 1);
+ curl_setopt($ci, CURLOPT_MAXREDIRS, 2);/*指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的*/
+ curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
+ curl_setopt($ci, CURLINFO_HEADER_OUT, true);
+ /*curl_setopt($ci, CURLOPT_COOKIE, $Cookiestr); * *COOKIE带过去** */
+ $response = curl_exec($ci);
+ $requestinfo = curl_getinfo($ci);
+ $http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
+ $curl_error = curl_errno($ci);
+ if($curl_error){
+ Log::error("ERROR_CODE:{$curl_error} | URL:".$url.' | postfields:'.json_encode($postfields),'curl_error');
+ //sys_log("ERROR_CODE:{$curl_error} | URL:".$url.' | postfields:'.json_encode($postfields),'curl_error');
+ //\app\common\util\ErrorAlert::curlWarning($url,$curl_error);
+ }
+ if ($debug) {
+ echo "=====post data======\r\n";
+ var_dump($postfields);
+ echo "=====info===== \r\n";
+ print_r($requestinfo);
+ echo "=====response=====\r\n";
+ print_r($response);
+ }
+ curl_close($ci);
+ return json_decode($response, true);
+ //return array($http_code, $response,$requestinfo);
+}
diff --git a/app/common/service/Jd.php b/app/common/service/Jd.php
index c64e2de3..44c2e0ee 100644
--- a/app/common/service/Jd.php
+++ b/app/common/service/Jd.php
@@ -57,5 +57,32 @@ class Jd extends BaseService {
return $res['result'];
}
return null;
- }
+ }
+ /**
+ * 实时获取商品主图和详情
+ * [getGoodsMainImageAndDetail description]
+ * @param [type] $skuId [description]
+ * @return [type] [description]
+ */
+ public function getGoodsMainImageAndDetail($skuId){
+ $url = "http://47.98.251.206:8811/api/goods/info/v2?sku=".$skuId."&areaId=";
+ $res = httpRequest($url);
+ if ($res && $res['code'] == 0 && isset($res['data'])) {
+ return $res['data'];
+ }
+ return [];
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
}
diff --git a/app/store/controller/Store.php b/app/store/controller/Store.php
index b88c67a3..bef6dcf2 100644
--- a/app/store/controller/Store.php
+++ b/app/store/controller/Store.php
@@ -75,6 +75,7 @@ class Store extends Controller
*/
public function platformList(): Json
{
+ //$list = Channel::where('status', 1)->whereIn('code',['jd','sn','zy'])->select();
$list = Channel::where('status', 1)->whereIn('code',['zy'])->select();
$platformList = [];
foreach ($list as $key => $value) {