diff --git a/app/api/model/Goods.php b/app/api/model/Goods.php index 53b85f23..eee4843d 100644 --- a/app/api/model/Goods.php +++ b/app/api/model/Goods.php @@ -534,6 +534,7 @@ class Goods extends GoodsModel { // 判断是否登录 if (!UserService::isLogin()) { + $goods['line_price_min'] = $goods['goods_price_min']; return; } $catService = new \app\store\model\GoodsCategoryRel(); @@ -545,6 +546,7 @@ class Goods extends GoodsModel // $price_list_dealer[] = GoodsPriceModel::getDiscountPrice($v, 2, $goods['goods_price_min']); // } $goods['line_price_min'] = $goods['goods_price_min'];//划线价格等于市场价 + //价格判断 if (UserService::isstore()) { $priceArr = \app\common\model\PriceSet::distributionPrice($goods['goods_price_min'], $goods['cost_price_min'], $catIds); @@ -561,6 +563,7 @@ class Goods extends GoodsModel $goods['goods_price_min'] = $priceArr['distributionPrice']; //$goods['goods_price_min_dealer'] = min($price_list_dealer); } + // 会员折扣价: 商品sku列表 if ($goods->getRelation('skuList')) { foreach ($goods['skuList'] as &$skuItem) { diff --git a/app/api/model/Order.php b/app/api/model/Order.php index f680163e..1070fb85 100644 --- a/app/api/model/Order.php +++ b/app/api/model/Order.php @@ -90,8 +90,9 @@ class Order extends OrderModel $item['skuInfo'] = GoodsModel::getSkuInfo($item, $goodsSkuId, false); // 商品封面 (优先sku封面) $item['goods_image'] = $item['skuInfo']['goods_image'] ?: $item['goods_image']; + // 商品单价 - $item['goods_price'] = $item['skuInfo']['goods_price']; + $item['goods_price'] = \app\api\service\Goods::getGoodsPrice($item['goods_id'], $item['skuInfo']['goods_price'], $item['skuInfo']['cost_price']); // 商品购买数量 $item['total_num'] = $goodsNum; // 商品SKU索引 diff --git a/app/api/service/Cart.php b/app/api/service/Cart.php index ba3299d8..1e42324a 100644 --- a/app/api/service/Cart.php +++ b/app/api/service/Cart.php @@ -80,7 +80,8 @@ class Cart extends BaseService // 商品记录 $goods = $item['goods']; // 商品单价 - $goods['goods_price'] = $goods['skuInfo']['goods_price']; + $goods['goods_price'] = \app\api\service\Goods::getGoodsPrice($item['goods_id'], $goods['skuInfo']['goods_price'], $goods['skuInfo']['cost_price']); + //$goods['goods_price'] = $goods['skuInfo']['goods_price']; // 商品购买数量 $goods['total_num'] = $item['goods_num']; // 商品SKU索引 diff --git a/app/api/service/Goods.php b/app/api/service/Goods.php index 84d997cf..c04d22b5 100644 --- a/app/api/service/Goods.php +++ b/app/api/service/Goods.php @@ -222,6 +222,19 @@ class Goods extends GoodsService province_id,city_id,region_id,shop_id,address,latitude,longitude,wechat_img_id,history1,history2,history3,remark,history,parking_name,parking_desc,parking_latitude,parking_longitude,shop_image_id,fuwu_hours,fuwu_num')->find()->toArray(); //todo wmc $info['remark'] = json_decode($info['remark'],true); + $arr = explode(" ", $info['shop_hours']); + $arr = explode("-", $arr[1] ?? ""); + $info['is_open'] = 0; + // if ($arr && count($arr) == 2) { + // $start = explode(":", $arr[0]); + // $end = explode(":", $arr[1]); + // $start_time = ($start[0] ?? 0) + // if ($start[0]) { + // // code... + // } + // $info['is_open'] = 0; + // } + // $info['is_open'] = $arr && $arr[] // $info['fuwu_hours'] = 5; // $info['fuwu_num'] = 15; // $info['wechat'] = 'https://www.saas.njrenzhou.com/uploads/10001/20240127/12bb1b1747e652d258443247a5c4777c.png'; @@ -289,7 +302,19 @@ class Goods extends GoodsService // return $list; // } - + public static function getGoodsPrice($goods_id, $price, $cost_price){ + $catService = new \app\store\model\GoodsCategoryRel(); + $catIds = $catService->where(['goods_id' => $goods_id])->column('category_id'); + if (UserService::isstore()) { + $price = $cost_price; + } elseif (UserService::isPlusMember()) { + $price = \app\common\model\PriceSet::membershipPrice($price, $cost_price, $catIds); + } elseif (UserService::isDealerMember()) { + $priceArr = \app\common\model\PriceSet::distributionPrice($price, $cost_price, $catIds); + $price = $priceArr['goods_price_min_dealer']; + } + return $price; + } /** * 格式化商品列表 * @param $goodsList @@ -297,56 +322,61 @@ class Goods extends GoodsService */ private function formatGoodsList($goodsList): array { - $data = []; - foreach ($goodsList as $goods) { - $temp = [ - 'goods_id' => $goods['goods_id'], - 'goods_name' => $goods['goods_name'], - 'selling_point' => $goods['selling_point'], - 'goods_image' => $goods['goods_image'], - 'goods_price_min' => $goods['goods_price_min'],//商品价格 - 'goods_price_max' => $goods['goods_price_max'], - 'line_price_min' => $goods['goods_price_min'],//划线价格等于市场价 - 'line_price_max' => $goods['line_price_max'], - 'goods_sales' => $goods['goods_sales'], - 'remaizhishu' => $goods['remaizhishu'], - ]; - - if (UserService::isLogin()) { - $catService = new \app\store\model\GoodsCategoryRel(); - $catIds = $catService->where(['goods_id' => $goods['goods_id']])->column('category_id'); - // $price_list_plus = $price_list_dealer = []; - // foreach ($catIds as $k => $v) { - // $price_list_plus[] = GoodsPriceModel::getDiscountPrice($v, 1, $goods['goods_price_min']); - // $price_list_dealer[] = GoodsPriceModel::getDiscountPrice($v, 2, $goods['goods_price_min']); - // } + // echo "
"; + // print_r($goodsList->toArray()); + // exit(); + // $data = []; + // foreach ($goodsList as $goods) { + // $temp = [ + // 'goods_id' => $goods['goods_id'], + // 'goods_name' => $goods['goods_name'], + // 'selling_point' => $goods['selling_point'], + // 'goods_image' => $goods['goods_image'], + // 'goods_price_min' => $goods['goods_price_min'],//商品价格 + // 'goods_price_max' => $goods['goods_price_max'], + // 'line_price_min' => $goods['goods_price_min'],//划线价格等于市场价 + // 'line_price_max' => $goods['line_price_max'], + // 'goods_sales' => $goods['goods_sales'], + // 'remaizhishu' => $goods['remaizhishu'], + // ]; + // var_dump($goods->toArray()); + // var_dump($temp); + // exit(); + // if (UserService::isLogin()) { + // $catService = new \app\store\model\GoodsCategoryRel(); + // $catIds = $catService->where(['goods_id' => $goods['goods_id']])->column('category_id'); + // // $price_list_plus = $price_list_dealer = []; + // // foreach ($catIds as $k => $v) { + // // $price_list_plus[] = GoodsPriceModel::getDiscountPrice($v, 1, $goods['goods_price_min']); + // // $price_list_dealer[] = GoodsPriceModel::getDiscountPrice($v, 2, $goods['goods_price_min']); + // // } - //价格判断 - if (UserService::isstore()) { + // //价格判断 + // if (UserService::isstore()) { - //$priceArr = \app\common\model\PriceSet::distributionPrice($goods['goods_price_min'], $goods['cost_price_min'], $catIds); - - // $temp['goods_price_min_plus'] = $priceArr['membershipPrice']; - // $temp['goods_price_min_dealer'] = $priceArr['distributionPrice']; - $temp['goods_price_min'] = $goods['cost_price_min']; - // $temp['goods_price_min_plus'] = min($price_list_plus); - // $temp['goods_price_min_dealer'] = min($price_list_dealer); - } elseif (UserService::isPlusMember()) { - //$temp['goods_price_min_plus'] = \app\common\model\PriceSet::membershipPrice($goods['goods_price_min'], $goods['cost_price_min'], $catIds); - $temp['goods_price_min'] = \app\common\model\PriceSet::membershipPrice($goods['goods_price_min'], $goods['cost_price_min'], $catIds); - // $temp['goods_price_min'] = $temp['goods_price_min_plus']; - // $temp['goods_price_max'] = $temp['goods_price_min_plus']; - //$temp['goods_price_min_plus'] = min($price_list_plus); - } elseif (UserService::isDealerMember()) { - $priceArr = \app\common\model\PriceSet::distributionPrice($goods['goods_price_min'], $goods['cost_price_min'], $catIds); - //$temp['goods_price_min_dealer'] = $priceArr['distributionPrice']; - $temp['goods_price_min'] = $priceArr['goods_price_min_dealer']; - //$temp['goods_price_min_dealer'] = min($price_list_dealer); - } - } - $data[] = $temp; - } - return $data; + // //$priceArr = \app\common\model\PriceSet::distributionPrice($goods['goods_price_min'], $goods['cost_price_min'], $catIds); + + // // $temp['goods_price_min_plus'] = $priceArr['membershipPrice']; + // // $temp['goods_price_min_dealer'] = $priceArr['distributionPrice']; + // $temp['goods_price_min'] = $goods['cost_price_min']; + // // $temp['goods_price_min_plus'] = min($price_list_plus); + // // $temp['goods_price_min_dealer'] = min($price_list_dealer); + // } elseif (UserService::isPlusMember()) { + // //$temp['goods_price_min_plus'] = \app\common\model\PriceSet::membershipPrice($goods['goods_price_min'], $goods['cost_price_min'], $catIds); + // $temp['goods_price_min'] = \app\common\model\PriceSet::membershipPrice($goods['goods_price_min'], $goods['cost_price_min'], $catIds); + // // $temp['goods_price_min'] = $temp['goods_price_min_plus']; + // // $temp['goods_price_max'] = $temp['goods_price_min_plus']; + // //$temp['goods_price_min_plus'] = min($price_list_plus); + // } elseif (UserService::isDealerMember()) { + // $priceArr = \app\common\model\PriceSet::distributionPrice($goods['goods_price_min'], $goods['cost_price_min'], $catIds); + // //$temp['goods_price_min_dealer'] = $priceArr['distributionPrice']; + // $temp['goods_price_min'] = $priceArr['goods_price_min_dealer']; + // //$temp['goods_price_min_dealer'] = min($price_list_dealer); + // } + // } + // $data[] = $temp; + // } + return is_array($goodsList) ? $goodsList : $goodsList->toArray(); }