Commit 8323311c authored by 顾文旭's avatar 顾文旭

七牛图片获取

parent f56a963d
......@@ -30,13 +30,14 @@ class MarketingService
const ONLINE_LIFE_ACCOUNT_ID = "19019625839230981";
const ONLINE_LIFE_ACCOUNT_ID_TEST = "17963416161910792";
const CHARGEFEE = 0.006;
/**
* 写死的自营生活号
* @return string
*/
public static function getPublicLifeAccountId()
{
$lifeAccountId = config('lifeaccount','life_account_id');
$lifeAccountId = config('lifeaccount', 'life_account_id');
return $lifeAccountId;
}
......@@ -46,7 +47,7 @@ class MarketingService
* @param $params
* @return array|mixed
*/
public static function marketingGooodsList($params='')
public static function marketingGooodsList($params = '')
{
$startTime = !empty($params['start_time']) ? $params['start_time'] : '';
$endTime = !empty($params['end_time']) ? $params['end_time'] : '';
......@@ -54,11 +55,11 @@ class MarketingService
$lifeAccountId = !empty($params['life_account_id']) ? $params['life_account_id'] : '';
if (empty($startTime)) {
throw new MarketingException(['cus'=>8]);
throw new MarketingException(['cus' => 8]);
}
if (empty($endTime)) {
throw new MarketingException(['cus'=>9]);
throw new MarketingException(['cus' => 9]);
}
// if ($startTime <= date("Y-m-d")) {
......@@ -66,13 +67,13 @@ class MarketingService
// }
if ($endTime <= date("Y-m-d")) {
throw new MarketingException(['cus'=>11]);
throw new MarketingException(['cus' => 11]);
}
if ($startTime >= $endTime) {
throw new MarketingException(['cus'=>14]);
throw new MarketingException(['cus' => 14]);
}
$goodsData = [
"OR" => [
"start_time[>=]" => $startTime,
......@@ -111,7 +112,7 @@ class MarketingService
if (!empty($lifeAccountId)) {
$where['life_account_id'] = $lifeAccountId;
}
$goodsSkuList = GoodsSku::select('*', $where);
$lifeAccountIds = [];
......@@ -125,7 +126,7 @@ class MarketingService
$list[$key]['goods_spu_id'] = $value['goods_spu_id'];
$list[$key]['life_account_id'] = $value['life_account_id'];
$list[$key]['goods_name'] = $value['goods_name'];
$list[$key]['life_account_name'] = !empty($lifeAccountList[$value['life_account_id']]['life_account_name']) ? $lifeAccountList[$value['life_account_id']]['life_account_name'] : '';
$list[$key]['life_account_name'] = !empty($lifeAccountList[$value['life_account_id']]['life_account_name']) ? $lifeAccountList[$value['life_account_id']]['life_account_name'] : '';
}
return $list;
}
......@@ -170,15 +171,15 @@ class MarketingService
$capitalPoolList = $capitalPoolList['response']['result'] ?: [];
$poolTotal = $poolUsed = $poolLock = 0;
foreach ($lists as &$val) {
if($capitalPoolList[$val['capital_pool_id']]) {
if ($capitalPoolList[$val['capital_pool_id']]) {
$val['capital_pool'] = $capitalPoolList[$val['capital_pool_id']];
foreach (['capital_pool_total','capital_pool_lock','capital_pool_used'] as $key){
$val['capital_pool'][$key] = sprintf("%0.02f",$val['capital_pool'][$key]/100);
foreach (['capital_pool_total', 'capital_pool_lock', 'capital_pool_used'] as $key) {
$val['capital_pool'][$key] = sprintf("%0.02f", $val['capital_pool'][$key] / 100);
}
$poolTotal += $val['capital_pool']['capital_pool_total'];
$poolUsed += $val['capital_pool']['capital_pool_used'];
$poolLock += $val['capital_pool']['capital_pool_lock'];
}else {
} else {
$val['capital_pool'] = [];
}
$val['online_status_desc'] = Marketing::$onlineStatusDesc[$val['online_status']];
......@@ -188,9 +189,9 @@ class MarketingService
}
$poolbalance = $poolTotal - $poolUsed - $poolLock;
$poolAnalysis = ['total'=>$poolTotal,'used'=>$poolUsed,'lock'=>$poolLock,'balance'=>$poolbalance];
$poolAnalysis = ['total' => $poolTotal, 'used' => $poolUsed, 'lock' => $poolLock, 'balance' => $poolbalance];
return ['anlysis'=>$poolAnalysis,'list' => $lists];
return ['anlysis' => $poolAnalysis, 'list' => $lists];
}
/**
......@@ -222,12 +223,12 @@ class MarketingService
foreach ($params['online_status'] as $key => $valu) {
if (!empty($valu)) {
$where['online_status'][$key] = $valu;
}else{
$where['online_status'] = [1,2];
} else {
$where['online_status'] = [1, 2];
break;
}
}
}else{
} else {
$where['online_status'] = $params['online_status'];
}
}
......@@ -238,10 +239,10 @@ class MarketingService
if (empty($marketingGoodsList)) {
$where['marketing_id'] = "-1";
}else{
} else {
$marketingId = array_column($marketingGoodsList, 'marketing_id');
if (!empty($where['marketing_id'])) {
array_push($marketingId,$where['marketing_id']);
array_push($marketingId, $where['marketing_id']);
}
$where['marketing_id'] = $marketingId;
}
......@@ -254,13 +255,13 @@ class MarketingService
$lists = [];
foreach ($list as $key => $value) {
$lists[$key] = $value;
$lists[$key]['first_commission_value'] = !empty($value['first_commission_value']) ? $value['first_commission_value']/100 : 0;
$lists[$key]['second_commission_value'] = !empty($value['second_commission_value']) ? $value['second_commission_value']/100 : 0;
$lists[$key]['first_commission_value'] = !empty($value['first_commission_value']) ? $value['first_commission_value'] / 100 : 0;
$lists[$key]['second_commission_value'] = !empty($value['second_commission_value']) ? $value['second_commission_value'] / 100 : 0;
}
unset($where['LIMIT']);
unset($where['ORDER']);
$count = Marketing::getCount($where);
$data = ['result' => $lists,'count' => $count];
$data = ['result' => $lists, 'count' => $count];
return $data;
}
......@@ -282,10 +283,10 @@ class MarketingService
$sortType = isset($params['sort_type']) ? strtoupper($params['sort_type']) : 'desc';
//验证sort合法性
if(!in_array($params['sort_field'],['create_time','update_time','end_time','start_time'])) {
if (!in_array($params['sort_field'], ['create_time', 'update_time', 'end_time', 'start_time'])) {
$sortField = 'update_time';
}
if(!in_array($params['sort_type'],['asc','desc'])) {
if (!in_array($params['sort_type'], ['asc', 'desc'])) {
$sortType = 'DESC';
}
......@@ -312,7 +313,7 @@ class MarketingService
}
} elseif ($params["activity_status"] == MarketingPindan::ACTIVITY_STATUS_START_TODAY) {//今日上新-未开始
$where["start_time[>]"] = $now;
$where["start_time[<=]"] = date("Y-m-d 00:00:00",strtotime('+1 days'));
$where["start_time[<=]"] = date("Y-m-d 00:00:00", strtotime('+1 days'));
$where["end_time[>=]"] = $now;
}
......@@ -331,14 +332,14 @@ class MarketingService
$marketingIds[] = $value["marketing_id"];
}
//参与人数:当前拼单成功支付的订单总数量
if(isset($params['need_buy_num']) && $params['need_buy_num']) {
if (isset($params['need_buy_num']) && $params['need_buy_num']) {
$userCount = self::getHaveBuyGoodsUserCount(["marketing_id" => $marketingIds]);
}else {
} else {
$userCount = [];
}
$marketingPindanData = MarketingPindan::select(["marketing_id", "publish_life_account_id",
"min_price", "max_price", "pindan_desc","participate_number", "pindan_pic"]
"min_price", "max_price", "pindan_desc", "participate_number", "pindan_pic"]
, ["marketing_id" => $marketingIds]);
$priceData = [];
if (!empty($marketingPindanData)) {
......@@ -362,7 +363,11 @@ class MarketingService
$lists[$key]["life_account_name"] = $lifeAccountList[$currentLifeAccountId]["life_account_name"];
}
$picUrl = GoodsService::getUrlList($priceData[$value["marketing_id"]]["pindan_pic"]);
if (substr($priceData[$value["marketing_id"]]["pindan_pic"], 0, 2) === "SHQ") {
$picUrl = GoodsService::getUrlList($priceData[$value["marketing_id"]]["pindan_pic"]);
} else {
$picUrl = "https://pingouimg.jwshq.cn/" . $priceData[$value["marketing_id"]]["pindan_pic"];
}
$lists[$key]["min_price"] = sprintf("%.2f", $priceData[$value["marketing_id"]]["min_price"] / 100);
$lists[$key]["max_price"] = sprintf("%.2f", $priceData[$value["marketing_id"]]["max_price"] / 100);
$lists[$key]["pindan_pic_url"] = $picUrl;
......@@ -373,7 +378,7 @@ class MarketingService
$strList = explode(",", $shareDefaultStr);
$shareStr = $strList[0];
$shareRes = Ks3Api::picEncryptUrl($shareStr, 500, 400);
$shareUrl = empty($shareRes["response"]["data"]["url"]) ? "" : $shareRes["response"]["data"]["url"];
$shareUrl = empty($shareRes["response"]["data"]["url"]) ? "" : $shareRes["response"]["data"]["url"];
$lists[$key]["share_url"] = $shareUrl;
}
}
......@@ -382,7 +387,7 @@ class MarketingService
unset($where['LIMIT']);
unset($where['ORDER']);
$count = Marketing::count("*", $where);
return ['result' => $lists,'count' => $count];
return ['result' => $lists, 'count' => $count];
}
/**
......@@ -419,8 +424,8 @@ class MarketingService
$marketingName = !empty($params['marketing_name']) ? $params['marketing_name'] : '';
$firstCommissionRate = !empty($params['first_commission_value']) ? $params['first_commission_value']*100 : 0;
$secondCommissionRate = !empty($params['second_commission_value']) ? $params['second_commission_value']*100 : 0;
$firstCommissionRate = !empty($params['first_commission_value']) ? $params['first_commission_value'] * 100 : 0;
$secondCommissionRate = !empty($params['second_commission_value']) ? $params['second_commission_value'] * 100 : 0;
$createUserEmail = !empty($params['op_cur_user']) ? $params['op_cur_user'] : '';
$startTime = !empty($params['start_time']) ? $params['start_time'] : '';
$endTime = !empty($params['end_time']) ? $params['end_time'] : '';
......@@ -430,16 +435,16 @@ class MarketingService
if ($commissionMode == 1) {
$rate = $firstCommissionRate + $secondCommissionRate;
if ($rate > 5000) {
throw new MarketingException(['cus'=>15]);
}
throw new MarketingException(['cus' => 15]);
}
}
if (empty($goodsSkuId)) {
throw new MarketingException(['cus'=>12]);
throw new MarketingException(['cus' => 12]);
}
if (empty($marketingName)) {
throw new MarketingException(['cus'=>0]);
throw new MarketingException(['cus' => 0]);
}
// if (empty($firstCommissionRate)) {
......@@ -447,19 +452,19 @@ class MarketingService
// }
if (empty($secondCommissionRate)) {
throw new MarketingException(['cus'=>4]);
throw new MarketingException(['cus' => 4]);
}
if (self::utf8Strlen($marketingName) > 50) {
throw new MarketingException(['cus'=>1]);
throw new MarketingException(['cus' => 1]);
}
if (empty($startTime)) {
throw new MarketingException(['cus'=>8]);
throw new MarketingException(['cus' => 8]);
}
if (empty($endTime)) {
throw new MarketingException(['cus'=>9]);
throw new MarketingException(['cus' => 9]);
}
// if ($startTime <= date("Y-m-d")) {
......@@ -467,14 +472,14 @@ class MarketingService
// }
if ($endTime <= date("Y-m-d")) {
throw new MarketingException(['cus'=>11]);
throw new MarketingException(['cus' => 11]);
}
if ($startTime >= $endTime) {
throw new MarketingException(['cus'=>14]);
throw new MarketingException(['cus' => 14]);
}
$lifeAccountId = config('lifeaccount','life_account_id');
$lifeAccountId = config('lifeaccount', 'life_account_id');
$tmpMarketingId = [];
$tmpGoodsSkuId = [];
......@@ -501,7 +506,7 @@ class MarketingService
if (!empty($tmpGoodsSkuId)) {
if (array_intersect($goodsSkuId, $tmpGoodsSkuId)) {
throw new MarketingException(['cus'=>13]);
throw new MarketingException(['cus' => 13]);
}
}
......@@ -511,9 +516,9 @@ class MarketingService
'text' => !empty($marketingName) ? $marketingName : '',
'scene' => 1,
];
$sensitive = (new Sensitive)->detect($detectParams);
$sensitive = (new Sensitive)->detect($detectParams);
if (!empty($sensitive['data'])) {
throw new MarketingException(['cus'=>2]);
throw new MarketingException(['cus' => 2]);
}
// //判断重复
......@@ -552,43 +557,42 @@ class MarketingService
foreach ($goodsSkuList as $key => $value) {
$clearPrice = !empty($value["clear_price"]) ? $value["clear_price"] : 0;
$price = !empty($value["price"]) ? $value["price"] : 0;
$chargeFee = !empty($price) ? (float)bcmul($price , self::CHARGEFEE,2) : 0; //手续费 (分)
$chargeFee = !empty($price) ? (float)bcmul($price, self::CHARGEFEE, 2) : 0; //手续费 (分)
if ($chargeFee < 1) {
$chargeFee = 0;
}
if (!empty($clearPrice) && $clearPrice > 0) {
if ($commissionMode == Marketing::COMMISSION_MODE_RATE) {
$commissionTotal = ($firstCommissionRate + $secondCommissionRate) / 10000 * $price;
if (($price - $commissionTotal-$chargeFee) < $clearPrice) {
if (($price - $commissionTotal - $chargeFee) < $clearPrice) {
throw new GoodsException(['cus' => 48]);
}
}
if ($commissionMode == Marketing::COMMISSION_MODE_FIXED) {
$commissionTotal = ($firstCommissionRate + $secondCommissionRate);
if (($price - $commissionTotal - $chargeFee)< $clearPrice) {
if (($price - $commissionTotal - $chargeFee) < $clearPrice) {
throw new GoodsException(['cus' => 48]);
}
}
}else{
} else {
//比例计算
if ($commissionMode == Marketing::COMMISSION_MODE_RATE) {
$commissionTotal = ($firstCommissionRate + $secondCommissionRate) / 10000 * $price;
if ($price < ($commissionTotal+$chargeFee)) {
throw new MarketingException(['cus'=>33]);
if ($price < ($commissionTotal + $chargeFee)) {
throw new MarketingException(['cus' => 33]);
}
}
//固定金额
if ($commissionMode == Marketing::COMMISSION_MODE_FIXED) {
$commissionTotal = ($firstCommissionRate + $secondCommissionRate);
if ($price < ($commissionTotal+$chargeFee)) {
throw new MarketingException(['cus'=>33]);
if ($price < ($commissionTotal + $chargeFee)) {
throw new MarketingException(['cus' => 33]);
}
}
}
$colums[$key]['marketing_id'] = $marketingId;
$colums[$key]['goods_spu_id'] = $value['goods_spu_id'];
......@@ -607,7 +611,7 @@ class MarketingService
if (!empty($srt)) {
Marketing::commit();
return $srt;
}else{
} else {
Marketing::rollback();
throw new MarketingException(['cus' => 5]);
}
......@@ -631,7 +635,7 @@ class MarketingService
$goodsSkuId = !empty($params['goods_sku_id']) ? explode(",", $params['goods_sku_id']) : [];
$takePlaceIds = !empty($params['take_place_ids']) ? explode(",", $params['take_place_ids']) : [];
//$publicLifeAccountId = self::getPublicLifeAccountId();
$lifeAccountId = config('lifeaccount','life_account_id');
$lifeAccountId = config('lifeaccount', 'life_account_id');
if (empty($marketingName)) {
throw new MarketingException(['cus' => 0]);
}
......@@ -742,17 +746,17 @@ class MarketingService
throw new MarketingException(["cus" => 5]);
}
$picList = GoodsService::getUrlList($pindanPic);
$picList = GoodsService::getUrlList($pindanPic);
KafkaService::productMarketingUpdate([
'activityId' => $marketingId,
'startDate' => $startTime,
'endDate' => $endTime,
'userId' => $lifeAccountId,
'activityName' => $marketingName,
'text' => $pindanDesc,
'imageId' => $picList[0] ?? '',
'createTime' => date('Y-m-d H:i:s'),
'onlineStatus' => Marketing::ONLINE_STATUS_QIDONG,
'activityId' => $marketingId,
'startDate' => $startTime,
'endDate' => $endTime,
'userId' => $lifeAccountId,
'activityName' => $marketingName,
'text' => $pindanDesc,
'imageId' => $picList[0] ?? '',
'createTime' => date('Y-m-d H:i:s'),
'onlineStatus' => Marketing::ONLINE_STATUS_QIDONG,
]);
return $pindanId;
......@@ -861,7 +865,7 @@ class MarketingService
$marketingGoods = MarketingGoods::getRecords(["marketing_id" => $marketingId]);
if (!empty($marketingGoods)) {
$ids = array_column($marketingGoods, "id");
$delRes = MarketingGoods::delete(["id"=>$ids]);
$delRes = MarketingGoods::delete(["id" => $ids]);
if ($delRes == 0) {
throw new MarketingException(['cus' => 7]);
}
......@@ -883,7 +887,7 @@ class MarketingService
$marketingTakePlaces = MarketingTakePlace::getRecords(["marketing_id" => $marketingId]);
if (!empty($marketingTakePlaces)) {
$ids = array_column($marketingTakePlaces, "marketing_take_place_id");
$delRes = MarketingTakePlace::delete(["marketing_take_place_id"=>$ids]);
$delRes = MarketingTakePlace::delete(["marketing_take_place_id" => $ids]);
if ($delRes == 0) {
throw new MarketingException(['cus' => 7]);
}
......@@ -910,18 +914,18 @@ class MarketingService
throw new MarketingException(["cus" => 5]);
}
$picList = GoodsService::getUrlList($marketingPindan['pindan_pic']);
$picList = GoodsService::getUrlList($marketingPindan['pindan_pic']);
KafkaService::productMarketingUpdate([
'activityId' => $marketingId,
'startDate' => $startTime,
'endDate' => $endTime,
'userId' => config('lifeaccount','life_account_id'),
'activityName' => $marketingName,
'text' => $pindanDesc,
'imageId' => $picList[0] ?? '',
'createTime' => $marketing['create_time'],
'onlineStatus' => Marketing::ONLINE_STATUS_QIDONG,
'activityId' => $marketingId,
'startDate' => $startTime,
'endDate' => $endTime,
'userId' => config('lifeaccount', 'life_account_id'),
'activityName' => $marketingName,
'text' => $pindanDesc,
'imageId' => $picList[0] ?? '',
'createTime' => $marketing['create_time'],
'onlineStatus' => Marketing::ONLINE_STATUS_QIDONG,
]);
return true;
......@@ -955,17 +959,17 @@ class MarketingService
$marketing = Marketing::getRecord(["marketing_id" => $marketingId]);
$marketingPindan = MarketingPindan::getRecord(["marketing_id" => $marketingId]);
$picList = GoodsService::getUrlList($marketingPindan['pindan_pic']);
$picList = GoodsService::getUrlList($marketingPindan['pindan_pic']);
KafkaService::productMarketingUpdate([
'activityId' => $marketingId,
'startDate' => $marketing['start_time'],
'endDate' => $endTime,
'userId' => config('lifeaccount','life_account_id'),
'activityName' => $marketing['marketing_name'],
'text' => $marketingPindan['pindan_desc'],
'imageId' => $picList[0] ?? '',
'createTime' => $marketing['create_time'],
'onlineStatus' => $onlineStatus,
'activityId' => $marketingId,
'startDate' => $marketing['start_time'],
'endDate' => $endTime,
'userId' => config('lifeaccount', 'life_account_id'),
'activityName' => $marketing['marketing_name'],
'text' => $marketingPindan['pindan_desc'],
'imageId' => $picList[0] ?? '',
'createTime' => $marketing['create_time'],
'onlineStatus' => $onlineStatus,
]);
}
......@@ -979,9 +983,9 @@ class MarketingService
* @param $onlineStatus
* @return \Api\PhpUtils\Mysql\MysqlBase
*/
public static function toogleOnlineStatus($marketingId,$onlineStatus)
public static function toogleOnlineStatus($marketingId, $onlineStatus)
{
if(!in_array($onlineStatus,array_keys(Marketing::$onlineStatusDesc))) {
if (!in_array($onlineStatus, array_keys(Marketing::$onlineStatusDesc))) {
return 0;
}
......@@ -1023,7 +1027,7 @@ class MarketingService
$goodsSkuList = MarketingGoods::marketingGoodsList(['marketing_id' => $params['marketing_id']]);
$goodsSkuId = array_column($goodsSkuList , 'goods_sku_id');
$goodsSkuId = array_column($goodsSkuList, 'goods_sku_id');
$goodsSkuList = GoodsSku::select('*', ['goods_sku_id' => $goodsSkuId]);
......@@ -1045,8 +1049,8 @@ class MarketingService
}
}
$marketing_info['first_commission_value'] = !empty($marketing_info['first_commission_value']) ? $marketing_info['first_commission_value']/100 : 0;
$marketing_info['second_commission_value'] = !empty($marketing_info['second_commission_value']) ? $marketing_info['second_commission_value']/100 : 0;
$marketing_info['first_commission_value'] = !empty($marketing_info['first_commission_value']) ? $marketing_info['first_commission_value'] / 100 : 0;
$marketing_info['second_commission_value'] = !empty($marketing_info['second_commission_value']) ? $marketing_info['second_commission_value'] / 100 : 0;
$info['marketing_info'] = $marketing_info;
$info['goods_list'] = $list;
......@@ -1081,7 +1085,7 @@ class MarketingService
$marketingGoodsList = MarketingGoods::marketingGoodsList(['marketing_id' => $params['marketing_id'], "ORDER" => ["id" => "ASC"]]);
if (!empty($marketingGoodsList)) {
$goodsSkuId = array_column($marketingGoodsList , 'goods_sku_id');
$goodsSkuId = array_column($marketingGoodsList, 'goods_sku_id');
$goodsSkuList = PindanGoodsSku::select('*', ['goods_sku_id' => $goodsSkuId]);
}
empty($goodsSkuList) && $goodsSkuList = [];
......@@ -1117,7 +1121,7 @@ class MarketingService
$strList = explode(",", $shareDefaultStr);
$shareStr = $strList[0];
$shareRes = Ks3Api::picEncryptUrl($shareStr, 500, 400);
$shareUrl = empty($shareRes["response"]["data"]["url"]) ? "" : $shareRes["response"]["data"]["url"];
$shareUrl = empty($shareRes["response"]["data"]["url"]) ? "" : $shareRes["response"]["data"]["url"];
$marketingData["share_url"] = $shareUrl;
$info['marketing_info'] = $marketingData;
......@@ -1195,7 +1199,7 @@ class MarketingService
public static function getMarketingList($params)
{
$where['marketing_id'] = !empty($params['marketing_id']) ? $params['marketing_id'] : '';
if(!empty($params['marketing_type'])){
if (!empty($params['marketing_type'])) {
$where['marketing_type'] = !empty($params['marketing_type']) ? $params['marketing_type'] : '';
}
$marketing_list = Marketing::getMarketingList($where);
......@@ -1214,7 +1218,7 @@ class MarketingService
$goodsSkuList = [];
if (!empty($marketingGoodsList)) {
$goodsSkuId = array_column($marketingGoodsList , 'goods_sku_id');
$goodsSkuId = array_column($marketingGoodsList, 'goods_sku_id');
$goodsSkuList = PindanGoodsSku::select('*', ['goods_sku_id' => $goodsSkuId]);
$goodsSkuList = array_column((array)$goodsSkuList, null, "goods_sku_id");
}
......@@ -1241,7 +1245,7 @@ class MarketingService
//没有库存的放在最下面
foreach ($list as $marketingId => $item) {
foreach($item as $key=>$value) {
foreach ($item as $key => $value) {
if ($value["inventory_rest"] == 0) {
unset($list[$marketingId][$key]);
array_push($list[$marketingId], $value);
......@@ -1274,17 +1278,18 @@ class MarketingService
return $data;
}
/**
*判断长度
*
*/
public static function utf8Strlen($string = null) {
/**
*判断长度
*
*/
public static function utf8Strlen($string = null)
{
// 将字符串分解为单元
preg_match_all("/./us", $string, $match);
// // 返回单元个数
return count($match[0]);
}
/**
* 通过发号器拿 id (非雪花)
* number,获取店铺shop_id用生活号id后两位,商品相关的这里是shop_id的后两位
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment