提交 3387d85e 编写于 作者: D devil

商品规格优化

上级 0df07e9c
...@@ -200,7 +200,7 @@ class Devtest extends Common ...@@ -200,7 +200,7 @@ class Devtest extends Common
$spec = array_column($res['value'], 'value'); $spec = array_column($res['value'], 'value');
foreach($spec as $k=>$v) foreach($spec as $k=>$v)
{ {
$arr = explode(',', $v); $arr = explode(GoodsService::$goods_spec_to_string_separator, $v);
$inventory_spec[] = [ $inventory_spec[] = [
'name' => implode(' / ', $arr), 'name' => implode(' / ', $arr),
'spec' => json_encode(WarehouseGoodsService::GoodsSpecMuster($v, $res['title']), JSON_UNESCAPED_UNICODE), 'spec' => json_encode(WarehouseGoodsService::GoodsSpecMuster($v, $res['title']), JSON_UNESCAPED_UNICODE),
......
...@@ -26,6 +26,9 @@ use app\service\WarehouseGoodsService; ...@@ -26,6 +26,9 @@ use app\service\WarehouseGoodsService;
*/ */
class GoodsService class GoodsService
{ {
// 规格转成字符串分割符号
public static $goods_spec_to_string_separator = '{|}';
/** /**
* 根据id获取一条商品分类 * 根据id获取一条商品分类
* @author Devil * @author Devil
...@@ -752,7 +755,7 @@ class GoodsService ...@@ -752,7 +755,7 @@ class GoodsService
} }
foreach($group as &$gv) foreach($group as &$gv)
{ {
$gv['value'] = implode(',', $gv['value']); $gv['value'] = implode(self::$goods_spec_to_string_separator, $gv['value']);
} }
sort($group); sort($group);
} }
......
...@@ -523,7 +523,7 @@ class WarehouseGoodsService ...@@ -523,7 +523,7 @@ class WarehouseGoodsService
$spec = array_column($res['value'], 'value'); $spec = array_column($res['value'], 'value');
foreach($spec as $v) foreach($spec as $v)
{ {
$arr = explode(',', $v); $arr = explode(GoodsService::$goods_spec_to_string_separator, $v);
$inventory_spec[] = [ $inventory_spec[] = [
'name' => implode(' / ', $arr), 'name' => implode(' / ', $arr),
'spec' => json_encode(self::GoodsSpecMuster($v, $res['title']), JSON_UNESCAPED_UNICODE), 'spec' => json_encode(self::GoodsSpecMuster($v, $res['title']), JSON_UNESCAPED_UNICODE),
...@@ -583,7 +583,7 @@ class WarehouseGoodsService ...@@ -583,7 +583,7 @@ class WarehouseGoodsService
public static function GoodsSpecMuster($spec_str, $spec_title) public static function GoodsSpecMuster($spec_str, $spec_title)
{ {
$result = []; $result = [];
$arr = explode(',', $spec_str); $arr = explode(GoodsService::$goods_spec_to_string_separator, $spec_str);
if(count($arr) == count($spec_title)) if(count($arr) == count($spec_title))
{ {
foreach($arr as $k=>$v) foreach($arr as $k=>$v)
...@@ -759,7 +759,7 @@ class WarehouseGoodsService ...@@ -759,7 +759,7 @@ class WarehouseGoodsService
$data = []; $data = [];
foreach($res['value'] as $v) foreach($res['value'] as $v)
{ {
$md5_key = md5(empty($v['value']) ? 'default' : str_replace(',', '', $v['value'])); $md5_key = md5(empty($v['value']) ? 'default' : str_replace(GoodsService::$goods_spec_to_string_separator, '', $v['value']));
$inventory = (int) Db::name('WarehouseGoodsSpec')->where(['warehouse_id'=>$wg['warehouse_id'], 'md5_key'=>$md5_key])->value('inventory'); $inventory = (int) Db::name('WarehouseGoodsSpec')->where(['warehouse_id'=>$wg['warehouse_id'], 'md5_key'=>$md5_key])->value('inventory');
$data[] = [ $data[] = [
'warehouse_goods_id' => $wg['id'], 'warehouse_goods_id' => $wg['id'],
...@@ -822,7 +822,7 @@ class WarehouseGoodsService ...@@ -822,7 +822,7 @@ class WarehouseGoodsService
// 商品规格库存 // 商品规格库存
foreach($res['value'] as $v) foreach($res['value'] as $v)
{ {
$inventory = self::WarehouseGoodsSpecInventory($goods_id, str_replace(',', '', $v['value'])); $inventory = self::WarehouseGoodsSpecInventory($goods_id, str_replace(GoodsService::$goods_spec_to_string_separator, '', $v['value']));
if(Db::name('GoodsSpecBase')->where(['id'=>$v['base_id'], 'goods_id'=>$goods_id])->update(['inventory'=>$inventory]) === false) if(Db::name('GoodsSpecBase')->where(['id'=>$v['base_id'], 'goods_id'=>$goods_id])->update(['inventory'=>$inventory]) === false)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册