diff --git a/application/service/BuyService.php b/application/service/BuyService.php index aa75221c1..dfb737231 100755 --- a/application/service/BuyService.php +++ b/application/service/BuyService.php @@ -91,6 +91,17 @@ class BuyService return $goods_base; } + // 获取商品规格图片 + if(!empty($spec)) + { + $images = self::BuyGoodsSpecImages($goods_id, $spec); + if(!empty($images)) + { + $goods['images'] = $images; + $goods['images_old'] = ResourcesService::AttachmentPathViewHandle($images); + } + } + // 添加购物车 $data = [ 'user_id' => $params['user']['id'], @@ -181,7 +192,7 @@ class BuyService $where = (!empty($params['where']) && is_array($params['where'])) ? $params['where'] : []; $where['c.user_id'] = $params['user']['id']; - $field = 'c.*, g.title, g.images, g.inventory_unit, g.is_shelves, g.is_delete_time, g.buy_min_number, g.buy_max_number, g.model'; + $field = 'c.*, g.inventory_unit, g.is_shelves, g.is_delete_time, g.buy_min_number, g.buy_max_number, g.model'; $data = Db::name('Cart')->alias('c')->join(['__GOODS__'=>'g'], 'g.id=c.goods_id')->where($where)->field($field)->select(); @@ -412,10 +423,22 @@ class BuyService $ret['data'][0]['spec_weight'] = $goods_base['data']['spec_base']['weight']; $ret['data'][0]['spec_coding'] = $goods_base['data']['spec_base']['coding']; $ret['data'][0]['spec_barcode'] = $goods_base['data']['spec_base']['barcode']; + $ret['data'][0]['extends'] = $goods_base['data']['spec_base']['extends']; } else { return $goods_base; } + // 获取商品规格图片 + if(!empty($ret['data'][0]['spec'])) + { + $images = self::BuyGoodsSpecImages($ret['data'][0]['goods_id'], $ret['data'][0]['spec']); + if(!empty($images)) + { + $ret['data'][0]['images'] = $images; + $ret['data'][0]['images_old'] = ResourcesService::AttachmentPathViewHandle($images); + } + } + // 数量/小计 $ret['data'][0]['stock'] = $params['stock']; $ret['data'][0]['total_price'] = $params['stock']* ((float) $ret['data'][0]['price']); @@ -462,6 +485,52 @@ class BuyService return self::CartList($params); } + /** + * 获取规格图片 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2019-08-02 + * @desc description + * @param [int] $goods_id [商品id] + * @param [string] $spec [图片地址或空字符串] + */ + public static function BuyGoodsSpecImages($goods_id, $spec) + { + if(!empty($spec)) + { + $data = Db::name('GoodsSpecType')->where(['goods_id'=>$goods_id])->field('name,value')->select(); + if(!empty($data)) + { + $spec_images = []; + foreach($data as $v) + { + if(!empty($v['value'])) + { + foreach(json_decode($v['value'], true) as $vs) + { + if(!empty($vs['images'])) + { + $spec_images[$v['name']][$vs['name']] = $vs['images']; + } + } + } + } + if(!empty($spec_images)) + { + foreach($spec as $v) + { + if(array_key_exists($v['type'], $spec_images) && array_key_exists($v['value'], $spec_images[$v['type']])) + { + return $spec_images[$v['type']][$v['value']]; + } + } + } + } + } + return ''; + } + /** * 下订单购物车删除 * @author Devil