From 56bef0a81ef2529dabf63fc839ce1446a8084a74 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 14 Nov 2023 10:41:02 +0800 Subject: [PATCH 01/37] =?UTF-8?q?=E5=95=86=E6=88=B7=E7=9A=84=E5=95=86?= =?UTF-8?q?=E5=93=81=E6=90=9C=E7=B4=A2=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/store/product/StoreSpu.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controller/api/store/product/StoreSpu.php b/app/controller/api/store/product/StoreSpu.php index 758a33ed..01c1dbd4 100644 --- a/app/controller/api/store/product/StoreSpu.php +++ b/app/controller/api/store/product/StoreSpu.php @@ -132,7 +132,7 @@ class StoreSpu extends BaseController $where['mer_id'] = $id; $where['is_gift_bag'] = 0; $where['order'] = $where['order'] ? $where['order'] : 'sort'; - $data = $this->repository->getApiSearch($where, $page, $limit, $this->userInfo); + $data = $this->repository->getApiSearch($where, $page, $limit, $this->userInfo,true); return app('json')->success($data); } From b09f23963fe0feeb87b0220a3c9bd638079feb45 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 14 Nov 2023 11:41:43 +0800 Subject: [PATCH 02/37] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=85=88=E6=AC=BE?= =?UTF-8?q?=E5=90=8E=E8=B4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/dao/store/order/StoreCartDao.php | 1 + app/controller/api/store/order/StoreCart.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/common/dao/store/order/StoreCartDao.php b/app/common/dao/store/order/StoreCartDao.php index fd054fde..c76760fd 100644 --- a/app/common/dao/store/order/StoreCartDao.php +++ b/app/common/dao/store/order/StoreCartDao.php @@ -30,6 +30,7 @@ class StoreCartDao extends BaseDao const SOURCE_STORE_CLOUD = 101; //店铺内云商品 const SOURCE_CLOUD = 102; //云仓内店铺商品 const CITY_CLOUD = 103; //市级云仓商品 + const SOURCE_PROCURE = 200; //供应链采购商品B2B const SOURCE_COMMUNITY_RESALE = 201; //转售商品 const SOURCE_COMMUNITY_ENTRUST = 202; //委托商品 diff --git a/app/controller/api/store/order/StoreCart.php b/app/controller/api/store/order/StoreCart.php index 2a405dfb..c4775a15 100644 --- a/app/controller/api/store/order/StoreCart.php +++ b/app/controller/api/store/order/StoreCart.php @@ -93,7 +93,7 @@ class StoreCart extends BaseController case 99: //委托商品 $result = app()->make(ProductRepository::class)->cartCheck($data,$this->request->userInfo()); [$source, $sourceId, $pid] = explode(':', $this->request->param('source', '0'), 3) + ['', '', '']; - if($source==StoreCartDao::CITY_CLOUD){ + if($source==StoreCartDao::CITY_CLOUD||$source==StoreCartDao::SOURCE_PROCURE){ $data['source'] = $source; }else{ $data['source'] = (in_array($source, [0, 1]) && $pid == $data['product_id']) ? $source : 0; From f929d6b13b0566fab2af9c55f3a1ea5bcfb15b28 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 14 Nov 2023 11:51:08 +0800 Subject: [PATCH 03/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/order/StoreCartRepository.php.bak | 130 ------------------ .../store/product/ProductRepository.php | 1 + 2 files changed, 1 insertion(+), 130 deletions(-) delete mode 100644 app/common/repositories/store/order/StoreCartRepository.php.bak diff --git a/app/common/repositories/store/order/StoreCartRepository.php.bak b/app/common/repositories/store/order/StoreCartRepository.php.bak deleted file mode 100644 index 1600c150..00000000 --- a/app/common/repositories/store/order/StoreCartRepository.php.bak +++ /dev/null @@ -1,130 +0,0 @@ - -// +---------------------------------------------------------------------- - - -namespace app\common\repositories\store\order; - - -use app\common\dao\store\order\StoreCartDao; -use app\common\model\store\product\Product; -use app\common\repositories\BaseRepository; -use app\common\repositories\store\coupon\StoreCouponProductRepository; -use app\common\repositories\store\coupon\StoreCouponRepository; -use app\common\repositories\store\product\ProductRepository; -use think\exception\ValidateException; - -/** - * Class StoreCartRepository - * @package app\common\repositories\store\order - * @author xaboy - * @day 2020/5/30 - * @mixin StoreCartDao - */ -class StoreCartRepository extends BaseRepository -{ - /** - * StoreCartRepository constructor. - * @param StoreCartDao $dao - */ - public function __construct(StoreCartDao $dao) - { - $this->dao = $dao; - } - - /** - * @param $uid - * @return array - * @author Qinii - */ - public function getList($user) - { - $res = $this->dao->getAll($user->uid)->append(['checkCartProduct', 'UserPayCount', 'ActiveSku', 'attrValue', 'attr','spu']); - $make = app()->make(ProductRepository::class); - $res->map(function ($item) use ($make) { - $item['attr'] = $make->detailAttr($item['attr']); - }); - return $this->checkCartList($res, $user->uid, $user); - } - - public function checkCartList($res, $hasCoupon = 0, $user = null) - { - $arr = $fail = []; - $product_make = app()->make(ProductRepository::class); - $svip_status = ($user && $user->is_svip > 0 && systemConfig('svip_switch_status')) ? true : false; - foreach ($res as $item) { - if (!$item['checkCartProduct']) { - $item['product'] = $product_make->getFailProduct($item['product_id']); - $fail[] = $item; - } else { - $merchantData = $item['merchant']->append(['openReceipt'])->toArray(); - unset($item['merchant']); - $coupon_make = app()->make(StoreCouponRepository::class); - if (!isset($arr[$item['mer_id']])) { - if ($hasCoupon) - $merchantData['hasCoupon'] = $coupon_make->validMerCouponExists($item['mer_id'], $hasCoupon); - $arr[$item['mer_id']] = $merchantData; - } - if ($hasCoupon && !$arr[$item['mer_id']]['hasCoupon']) { - $couponIds = app()->make(StoreCouponProductRepository::class)->productByCouponId([$item['product']['product_id']]); - $arr[$item['mer_id']]['hasCoupon'] = count($couponIds) ? $coupon_make->validProductCouponExists([$item['product']['product_id']], $hasCoupon) : 0; - } - if ($svip_status && $item['product']['show_svip_price']) { - $item['productAttr']['show_svip_price'] = true; - $item['productAttr']['org_price'] = $item['productAttr']['price']; - $item['productAttr']['price'] = $item['productAttr']['svip_price']; - } else { - $item['productAttr']['show_svip_price'] = false; - } - $arr[$item['mer_id']]['list'][] = $item; - } - } - $list = array_values($arr); - return compact('list', 'fail'); - } - - /** - * 获取单条购物车信息 - * @Author:Qinii - * @Date: 2020/5/30 - * @param int $id - * @return mixed - */ - public function getOne(int $id,int $uid) - { - $where = [$this->dao->getPk() => $id,'is_del'=>0,'is_fail'=>0,'is_new'=>0,'is_pay'=>0,'uid' => $uid]; - return ($this->dao->getWhere($where)); - } - - /** - * 查看相同商品的sku是存在 - * @param $sku - * @param $uid - * @author Qinii - */ - public function getCartByProductSku($sku,$uid) - { - $where = ['is_del'=>0,'is_fail'=>0,'is_new'=>0,'is_pay'=>0,'uid' => $uid,'product_type' => 0,'product_attr_unique' => $sku]; - return ($this->dao->getWhere($where)); - } - - - public function getProductById($productId) - { - $where = [ - 'is_del' =>0, - 'is_new'=>0, - 'is_pay'=>0, - 'product_id'=>$productId - ]; - return $this->dao->getWhereCount($where); - } -} diff --git a/app/common/repositories/store/product/ProductRepository.php b/app/common/repositories/store/product/ProductRepository.php index a9134789..ffa2d9bb 100644 --- a/app/common/repositories/store/product/ProductRepository.php +++ b/app/common/repositories/store/product/ProductRepository.php @@ -1487,6 +1487,7 @@ class ProductRepository extends BaseRepository 'sales' => $value['sales'], 'unique' => $value['unique'], 'bar_code' => $value['bar_code'], + 'procure_price' => $value['procure_price'], ]; if($productType == 0 ){ $_value['ot_price'] = $value['ot_price']; From fa320a526f65f481f366f7355f9ec102172bf723 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 14 Nov 2023 14:43:34 +0800 Subject: [PATCH 04/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E4=BB=B7=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/dao/store/order/StoreCartDao.php | 2 +- .../order/StoreOrderCreateRepository.php | 380 ++---------------- .../store/order/StoreOrderRepository.php | 27 +- .../store/product/ProductRepository.php | 12 +- app/controller/api/server/StoreOrder.php.bak | 336 ---------------- app/controller/api/server/StoreProduct.php | 4 +- .../api/server/StoreProduct.php.bak | 206 ---------- 7 files changed, 55 insertions(+), 912 deletions(-) delete mode 100644 app/controller/api/server/StoreOrder.php.bak delete mode 100644 app/controller/api/server/StoreProduct.php.bak diff --git a/app/common/dao/store/order/StoreCartDao.php b/app/common/dao/store/order/StoreCartDao.php index c76760fd..145c0c26 100644 --- a/app/common/dao/store/order/StoreCartDao.php +++ b/app/common/dao/store/order/StoreCartDao.php @@ -114,7 +114,7 @@ class StoreCartDao extends BaseDao } }, 'productAttr' => function (Relation $query) { - $query->field('image,extension_one,extension_two,product_id,stock,price,unique,sku,volume,weight,ot_price,cost,svip_price') + $query->field('image,extension_one,extension_two,product_id,stock,price,unique,sku,volume,weight,ot_price,cost,svip_price,procure_price') ->append(['bc_extension_one', 'bc_extension_two']); }, 'merchant' => function (Relation $query) use ($uid) { diff --git a/app/common/repositories/store/order/StoreOrderCreateRepository.php b/app/common/repositories/store/order/StoreOrderCreateRepository.php index 09a89555..933500ab 100644 --- a/app/common/repositories/store/order/StoreOrderCreateRepository.php +++ b/app/common/repositories/store/order/StoreOrderCreateRepository.php @@ -107,28 +107,28 @@ class StoreOrderCreateRepository extends StoreOrderRepository } } } - if (($order_type == 98 || $order_type == 99) && count($merchantCartList) > 1) { - throw new ValidateException('采购、委托商品不支持跨店购买'); - } + // if (($order_type == 98 || $order_type == 99) && count($merchantCartList) > 1) { + // throw new ValidateException('采购、委托商品不支持跨店购买'); + // } $community = []; - if ($order_type == 98) { - $sourceIdArray = []; - foreach($merchantCart['list'] as $prod){ - if ($prod['source_id'] > 0) { - $sourceIdArray[] = $prod['source_id']; - } - } - if (count($sourceIdArray)) { - if (count(array_unique($sourceIdArray)) > 1) { - throw new ValidateException('转售商品数据异常'); - } - $community = Db::name('Community')->where('community_id', $sourceIdArray[0] ?? 0)->field('community_id, title, image')->fetchSql(false)->find(); - if ($community) { - $deliverMethod = Db::name('resale')->where('community_id', $sourceIdArray[0] ?? 0)->value('deliver_method'); - $deliverMethodArray = explode(',', $deliverMethod); - } - } - } + // if ($order_type == 98) { + // $sourceIdArray = []; + // foreach($merchantCart['list'] as $prod){ + // if ($prod['source_id'] > 0) { + // $sourceIdArray[] = $prod['source_id']; + // } + // } + // if (count($sourceIdArray)) { + // if (count(array_unique($sourceIdArray)) > 1) { + // throw new ValidateException('转售商品数据异常'); + // } + // $community = Db::name('Community')->where('community_id', $sourceIdArray[0] ?? 0)->field('community_id, title, image')->fetchSql(false)->find(); + // if ($community) { + // $deliverMethod = Db::name('resale')->where('community_id', $sourceIdArray[0] ?? 0)->value('deliver_method'); + // $deliverMethodArray = explode(',', $deliverMethod); + // } + // } + // } unset($merchantCart, $cart); $order_price = 0; $total_true_price = 0; @@ -182,9 +182,6 @@ class StoreOrderCreateRepository extends StoreOrderRepository $product_cart = []; foreach ($merchantCart['list'] as $k => $cart) { - if ($order_type == 98) { - $merchantCart['list'][$k]['product']['delivery_way'] = $cart['product']['delivery_way'] = $deliverMethod ?? ''; - } //获取订单类型, 活动商品单次只能购买一个 if ($cart['product']['delivery_way']) { $delivery_way = explode(',', $cart['product']['delivery_way']); @@ -233,7 +230,10 @@ class StoreOrderCreateRepository extends StoreOrderRepository } $svip_discount = 0; $realPrice = $this->cartByPrice($cart); - if ($cart['product_type'] == 98 || $cart['product_type'] == 99) { + if ($source == StoreCartDao::SOURCE_PROCURE) { + if($realPrice==0){ + throw new ValidateException('价格必须大于0'); + } $cart['product']['price'] = $realPrice; $cart['productAttr']['price'] = $realPrice; $cart['productAttr']['stock'] = $cart['cart_num']; @@ -394,105 +394,14 @@ class StoreOrderCreateRepository extends StoreOrderRepository }); } - //过滤不可用店铺优惠券 - foreach ($merchantCart['coupon'] as &$coupon) { - if (!$coupon['coupon']['type']) continue; - - $coupon['disabled'] = false; - $coupon['checked'] = false; - - if (count(array_intersect(array_column($coupon['product'], 'product_id'), array_keys($product_price))) == 0) { - $coupon['disabled'] = true; - continue; - } - if($svip_coupon_merge != '1' && $use_svip){ - $coupon['disabled'] = true; - continue; - } - $flag = false; - foreach ($coupon['product'] as $_product) { - if (isset($product_price[$_product['product_id']]) && $product_price[$_product['product_id']] >= $coupon['use_min_price']) { - $flag = true; - break; - } - } - if (!$flag) { - $coupon['disabled'] = true; - } -// if (!$coupon['disabled']) { -// $all_coupon_product[] = $coupon['coupon_user_id']; -// } - } - - unset($coupon); - - //if ($useCouponFlag && count(array_diff($all_coupon_product, $use_coupon_product))) { - // throw new ValidateException('请选择有效的商品券'); - //} - //计算商品券金额 - foreach ($merchantCart['coupon'] as &$coupon) { - if (!$coupon['coupon']['type']) continue; - if ($coupon['disabled']) continue; - - foreach ($coupon['product'] as $_product) { - if (isset($product_price[$_product['product_id']]) && $product_price[$_product['product_id']] >= $coupon['use_min_price']) { - if ($useCouponFlag) { - if (!in_array($coupon['coupon_user_id'], $merCouponIds) || isset($use_coupon_product[$_product['product_id']])) { - continue; - } - } else if (isset($use_coupon_product[$_product['product_id']])) { - continue; - } - $coupon_price = bcadd($coupon_price, $coupon['coupon_price'], 2); - $use_coupon_product[$_product['product_id']] = $coupon; - $coupon['checked'] = true; - break; - } - } - unset($_product); - } - unset($coupon); $pay_price = max(bcsub($valid_total_price, $coupon_price, 2), 0); $_pay_price = $pay_price; - //计算店铺券 - foreach ($merchantCart['coupon'] as &$coupon) { - if ($coupon['coupon']['type']) continue; - $coupon['checked'] = false; - $coupon['disabled'] = $pay_price <= 0; - if ($use_store_coupon || $pay_price <= 0) continue; - if($svip_coupon_merge != '1' && $use_svip){ - $coupon['disabled'] = true; - continue; - } - //店铺券 - if ($valid_total_price >= $coupon['use_min_price']) { - if ($useCouponFlag) { - if (!in_array($coupon['coupon_user_id'], $merCouponIds)) { - continue; - } - } - $use_store_coupon = $coupon; - $coupon_price = bcadd($coupon_price, $coupon['coupon_price'], 2); - $_pay_price = bcsub($_pay_price, $coupon['coupon_price'], 2); - $coupon['checked'] = true; - } else { - $coupon['disabled'] = true; - } - } - unset($coupon); + $productCouponRate = []; $storeCouponRate = null; $useCouponIds = []; - //计算优惠占比 - foreach ($use_coupon_product as $productId => $coupon) { - $productCouponRate[$productId] = [ - 'rate' => $product_price[$productId] > 0 ? bcdiv($coupon['coupon_price'], $product_price[$productId], 4) : 1, - 'coupon_price' => $coupon['coupon_price'], - 'price' => $product_price[$productId] - ]; - $useCouponIds[] = $coupon['coupon_user_id']; - } + if ($use_store_coupon) { $storeCouponRate = [ @@ -507,39 +416,6 @@ class StoreOrderCreateRepository extends StoreOrderRepository foreach ($merchantCart['list'] as $_k => &$cart) { $cartTotalPrice = bcmul($this->cartByPrice($cart), $cart['cart_num'], 2); $_cartTotalPrice = $cartTotalPrice; - if (!$cart['product_type'] && $cartTotalPrice > 0) { - if (isset($productCouponRate[$cart['product_id']])) { - //计算每个商品优惠金额(商品券) - if ($productCouponRate[$cart['product_id']]['rate'] >= 1) { - $cartTotalPrice = 0; - } else { - array_pop($product_cart); - if (!count($product_cart)) { - $cartTotalPrice = bcsub($cartTotalPrice, $productCouponRate[$cart['product_id']]['coupon_price'], 2); - $productCouponRate[$cart['product_id']]['coupon_price'] = 0; - } else { - $couponPrice = bcmul($cartTotalPrice, $productCouponRate[$cart['product_id']]['rate'], 2); - $cartTotalPrice = bcsub($cartTotalPrice, $couponPrice, 2); - $productCouponRate[$cart['product_id']]['coupon_price'] = bcsub($productCouponRate[$cart['product_id']]['coupon_price'], $couponPrice, 2); - } - } - } - - //(店铺券) - if ($storeCouponRate && $cartTotalPrice > 0) { - if ($storeCouponRate['rate'] >= 1) { - $cartTotalPrice = 0; - } else { - if (count($merchantCart['list']) == $_k + 1) { - $cartTotalPrice = bcsub($cartTotalPrice, $storeCouponRate['coupon_price'], 2); - } else { - $couponPrice = bcmul($cartTotalPrice, $storeCouponRate['rate'], 2); - $cartTotalPrice = bcsub($cartTotalPrice, $couponPrice, 2); - $storeCouponRate['coupon_price'] = bcsub($storeCouponRate['coupon_price'], $couponPrice, 2); - } - } - } - } //单个商品实际支付金额 $cart['coupon_price'] = bcsub($_cartTotalPrice, $cartTotalPrice, 2); @@ -578,8 +454,8 @@ class StoreOrderCreateRepository extends StoreOrderRepository } unset($merchantCart); - $usePlatformCouponId = $useCoupon[0] ?? 0; - $usePlatformCouponId = is_array($usePlatformCouponId) ? array_pop($usePlatformCouponId) : $usePlatformCouponId; + $usePlatformCouponId = 0; + $total_platform_coupon_price = 0; $usePlatformCouponFlag = isset($useCoupon[0]); foreach ($merchantCartList as &$merchantCart) { @@ -601,154 +477,8 @@ class StoreOrderCreateRepository extends StoreOrderRepository } unset($merchantCart); - //计算平台券优惠金额 -// if ($total_true_price > 0) { - $StoreCouponUser = app()->make(StoreCouponUserRepository::class); - $platformCoupon = $StoreCouponUser->validUserPlatformCoupon($uid); - if ($enabledPlatformCoupon && count($platformCoupon)) { - - $catePriceLst = []; - $storePriceLst = []; - $_cartNum = 0; - - foreach ($merchantCartList as &$merchantCart) { - if ($merchantCart['order']['true_price'] <= 0) continue; - foreach ($merchantCart['list'] as &$cart) { - $_cartNum++; - if ($cart['product']['cate_id']) { - if (!isset($catePriceLst[$cart['product']['cate_id']])) { - $catePriceLst[$cart['product']['cate_id']] = ['price' => 0, 'cart' => []]; - } - $catePriceLst[$cart['product']['cate_id']]['price'] = bcadd($catePriceLst[$cart['product']['cate_id']]['price'], $cart['true_price']); - $catePriceLst[$cart['product']['cate_id']]['cart'][] = &$cart; - } - } - unset($cart); - $storePriceLst[$merchantCart['mer_id']] = [ - 'price' => $merchantCart['order']['true_price'], - 'num' => count($merchantCart['list']) - ]; - } - unset($merchantCart); - $flag = false; - $platformCouponRate = null; - - foreach ($platformCoupon as &$coupon) { - $coupon['checked'] = false; - //通用券 - if ($coupon['coupon']['type'] === StoreCouponRepository::TYPE_PLATFORM_ALL) { - $coupon['disabled'] = $total_true_price <= 0 || $coupon['use_min_price'] > $total_true_price; - if (!$platformCouponRate && !$coupon['disabled'] && !$flag && ((!$usePlatformCouponId && !$usePlatformCouponFlag) || $usePlatformCouponId == $coupon['coupon_user_id'])) { - $platformCouponRate = [ - 'id' => $coupon['coupon_user_id'], - 'type' => $coupon['coupon']['type'], - 'price' => $total_true_price, - 'coupon_price' => $coupon['coupon_price'], - 'use_count' => $_cartNum, - 'check' => function ($cart) { - return true; - } - ]; - $coupon['checked'] = true; - $flag = true; - } - //品类券 - } else if ($coupon['coupon']['type'] === StoreCouponRepository::TYPE_PLATFORM_CATE) { - $_price = 0; - $_use_count = 0; - $cateIds = $coupon['product']->column('product_id'); - $allCateIds = array_unique(array_merge(app()->make(StoreCategoryRepository::class)->allChildren($cateIds), $cateIds)); - $flag2 = true; - foreach ($allCateIds as $cateId) { - if (isset($catePriceLst[$cateId])) { - $_price = bcadd($catePriceLst[$cateId]['price'], $_price, 2); - $_use_count += count($catePriceLst[$cateId]['cart']); - $flag2 = false; - } - } - $coupon['disabled'] = $flag2 || $coupon['use_min_price'] > $_price; - //品类券可用 - if (!$platformCouponRate && !$coupon['disabled'] && !$flag && !$flag2 && ((!$usePlatformCouponId && !$usePlatformCouponFlag) || $usePlatformCouponId == $coupon['coupon_user_id'])) { - $platformCouponRate = [ - 'id' => $coupon['coupon_user_id'], - 'type' => $coupon['coupon']['type'], - 'price' => $_price, - 'use_cate' => $allCateIds, - 'coupon_price' => $coupon['coupon_price'], - 'use_count' => $_use_count, - 'check' => function ($cart) use ($allCateIds) { - return in_array($cart['product']['cate_id'], $allCateIds); - } - ]; - $coupon['checked'] = true; - $flag = true; - } - //跨店券 - } else if ($coupon['coupon']['type'] === StoreCouponRepository::TYPE_PLATFORM_STORE) { - $_price = 0; - $_use_count = 0; - $flag2 = true; - foreach ($coupon['product'] as $item) { - $merId = $item['product_id']; - if (isset($storePriceLst[$merId])) { - $_price = bcadd($storePriceLst[$merId]['price'], $_price, 2); - $_use_count += $storePriceLst[$merId]['num']; - $flag2 = false; - } - } - $coupon['disabled'] = $flag2 || $coupon['use_min_price'] > $_price; - //店铺券可用 - if (!$platformCouponRate && !$coupon['disabled'] && !$flag && !$flag2 && ((!$usePlatformCouponId && !$usePlatformCouponFlag) || $usePlatformCouponId == $coupon['coupon_user_id'])) { - $_merIds = $coupon['product']->column('product_id'); - $platformCouponRate = [ - 'id' => $coupon['coupon_user_id'], - 'type' => $coupon['coupon']['type'], - 'price' => $_price, - 'use_store' => $_merIds, - 'coupon_price' => $coupon['coupon_price'], - 'use_count' => $_use_count, - 'check' => function ($cart) use ($_merIds) { - return in_array($cart['mer_id'], $_merIds); - } - ]; - $coupon['checked'] = true; - $flag = true; - } - } - } - unset($coupon); - } -// } - $usePlatformCouponId = 0; $total_platform_coupon_price = 0; - //计算平台优惠券 - if (isset($platformCouponRate)) { - $_coupon_price = $platformCouponRate['coupon_price']; - foreach ($merchantCartList as &$merchantCart) { - $_price = 0; - foreach ($merchantCart['list'] as &$cart) { - if ($cart['true_price'] <= 0 || !$platformCouponRate['check']($cart)) continue; - - if ($platformCouponRate['use_count'] === 1) { - $couponPrice = min($platformCouponRate['coupon_price'], $cart['true_price']); - } else { - $couponPrice = min(bcmul($_coupon_price, bcdiv($cart['true_price'], $platformCouponRate['price'], 3), 2), $cart['true_price']); - } - $platformCouponRate['coupon_price'] = bcsub($platformCouponRate['coupon_price'], $couponPrice, 2); - $cart['true_price'] = bcsub($cart['true_price'], $couponPrice, 2); - $cart['platform_coupon_price'] = $couponPrice; - $platformCouponRate['use_count']--; - $_price = bcadd($couponPrice, $_price, 2); - } - unset($cart); - $merchantCart['order']['platform_coupon_price'] = $_price; - $merchantCart['order']['true_price'] = bcsub($merchantCart['order']['true_price'], $_price, 2); - $total_platform_coupon_price = bcadd($total_platform_coupon_price, $_price, 2); - } - $usePlatformCouponId = $platformCouponRate['id']; - unset($merchantCart); - } //积分配置 $sysIntegralConfig = systemConfig(['integral_money', 'integral_status', 'integral_order_rate']); @@ -775,49 +505,6 @@ class StoreOrderCreateRepository extends StoreOrderRepository $merIntegralFlag = $merIntegralFlag || ((bool)$merIntegralConfig['mer_integral_status']); $integralFlag = $useIntegral && $sysIntegralConfig['integral_status'] && $sysIntegralConfig['integral_money'] > 0 && $merIntegralConfig['mer_integral_status']; - //计算积分抵扣 - foreach ($merchantCart['list'] as &$cart) { - //只有普通商品可以抵扣 - if ($cart['product_type'] == 0 && $integralFlag && $userIntegral > 0 && $merchantCart['order']['true_price'] > 0) { - $integralRate = $cart['product']['integral_rate']; - if ($integralRate < 0) { - $integralRate = $merIntegralConfig['mer_integral_rate']; - } else if($integralRate > 0){ - $integralRate = min(bcdiv($integralRate, 100, 4), 1); - } - if ($integralRate > 0) { - $productIntegralPrice = min(bcmul(bcmul($this->cartByPrice($cart), $cart['cart_num'], 2), $integralRate, 2), $cart['true_price']); - if ($productIntegralPrice > 0) { - $productIntegral = ceil(bcdiv($productIntegralPrice, $sysIntegralConfig['integral_money'], 3)); - if ($productIntegral <= $userIntegral) { - $userIntegral = bcsub($userIntegral, $productIntegral, 0); - //使用多少积分抵扣了多少金额 - $cart['integral'] = [ - 'use' => $productIntegral, - 'price' => $productIntegralPrice - ]; - } else { - $productIntegralPrice = bcmul($userIntegral, $sysIntegralConfig['integral_money'], 2); - //使用多少积分抵扣了多少金额 - $cart['integral'] = [ - 'use' => $userIntegral, - 'price' => $productIntegralPrice - ]; - $userIntegral = 0; - } - - $cart['true_price'] = bcsub($cart['true_price'], $cart['integral']['price'], 2); - $merchantCart['order']['true_price'] = bcsub($merchantCart['order']['true_price'], $cart['integral']['price'], 2); - - $total_integral_price = bcadd($total_integral_price, $cart['integral']['price'], 2); - $total_integral = bcadd($total_integral, $cart['integral']['use'], 0); - continue; - } - } - } - $cart['integral'] = null; - } - unset($cart); $order_total_integral = bcadd($order_total_integral, $total_integral, 0); $order_total_integral_price = bcadd($order_total_integral_price, $total_integral_price, 2); @@ -848,14 +535,6 @@ class StoreOrderCreateRepository extends StoreOrderRepository $giveIntegralFlag = $sysIntegralConfig['integral_status'] && $sysIntegralConfig['integral_order_rate'] > 0; $total_give_integral = 0; - //计算赠送积分, 只有普通商品赠送积分 - if ($giveIntegralFlag && !$order_type && $pay_price > 0) { - $total_give_integral = floor(bcmul($pay_price, $sysIntegralConfig['integral_order_rate'], 0)); - if ($total_give_integral > 0 && $svip_status && $svip_integral_rate > 0) { - $total_give_integral = bcmul($svip_integral_rate, $total_give_integral, 0); - } - } - $order_total_give_integral = bcadd($total_give_integral, $order_total_give_integral, 0); foreach ($fn as $callback) { $callback(); @@ -901,7 +580,6 @@ class StoreOrderCreateRepository extends StoreOrderRepository 'order_price', 'total_price', 'community', - 'platformCoupon', 'enabledPlatformCoupon', 'usePlatformCouponId', 'order_total_integral', diff --git a/app/common/repositories/store/order/StoreOrderRepository.php b/app/common/repositories/store/order/StoreOrderRepository.php index 55d842a0..15d9250f 100644 --- a/app/common/repositories/store/order/StoreOrderRepository.php +++ b/app/common/repositories/store/order/StoreOrderRepository.php @@ -557,17 +557,22 @@ class StoreOrderRepository extends BaseRepository return $cart['activeSku']['active_price']; // 更新调货价格 } else if ($cart['product_type'] == '98') { - if ($cart['source_id'] > 0) { - $resale_find = Db::name('resale')->where('community_id', $cart['source_id'])->where('product_attr_unique', $cart['product_attr_unique'])->find(); - if ($resale_find &&$resale_find['status']==0) { - return $resale_find['price']; - }else if($resale_find['status']==1){ - throw new ValidateException('商品已转售'); - } - else { - throw new ValidateException('转售商品数据异常'); - } - } else { + // if ($cart['source_id'] > 0) { + // $resale_find = Db::name('resale')->where('community_id', $cart['source_id'])->where('product_attr_unique', $cart['product_attr_unique'])->find(); + // if ($resale_find &&$resale_find['status']==0) { + // return $resale_find['price']; + // }else if($resale_find['status']==1){ + // throw new ValidateException('商品已转售'); + // } + // else { + // throw new ValidateException('转售商品数据异常'); + // } + // } else { + // return $cart['productAttr']['price']; + // } + if($cart['source']== StoreCartDao::SOURCE_PROCURE){ + return $cart['productAttr']['procure_price']; + }else{ return $cart['productAttr']['price']; } // 更新委托价格 diff --git a/app/common/repositories/store/product/ProductRepository.php b/app/common/repositories/store/product/ProductRepository.php index ffa2d9bb..66df1327 100644 --- a/app/common/repositories/store/product/ProductRepository.php +++ b/app/common/repositories/store/product/ProductRepository.php @@ -286,10 +286,10 @@ class ProductRepository extends BaseRepository $spuData['mer_labels'] = $data['mer_labels']; Db::transaction(function () use ($id, $data, $productType, $settleParams,$content,$product,$spuData,$merId) { $this->save($id, $settleParams, $content, $product, $productType); - if ($productType == 1) { //秒杀商品 - $dat = $this->setSeckillProduct($data); - app()->make(StoreSeckillActiveRepository::class)->updateByProduct($id, $dat); - } + // if ($productType == 1) { //秒杀商品 + // $dat = $this->setSeckillProduct($data); + // app()->make(StoreSeckillActiveRepository::class)->updateByProduct($id, $dat); + // } if ($productType == 0) { $make = app()->make(ParameterValueRepository::class); $make->clear($id, 'product_id'); @@ -595,7 +595,7 @@ class ProductRepository extends BaseRepository $_svip_price = $value['svip_price']; $svip_price = !$svip_price ? $value['svip_price'] : (($svip_price > $value['svip_price']) ? $value['svip_price'] : $svip_price); } - + $procure_price=$value['procure_price']??0.00; $cost = !$cost ? $value['cost'] : (($cost > $value['cost']) ?$cost: $value['cost']); $price = !$price ? $sprice : (($price > $sprice) ? $sprice : $price); $ot_price = !$ot_price ? $ot_price_ : (($ot_price > $ot_price_) ? $ot_price : $ot_price_); @@ -620,6 +620,7 @@ class ProductRepository extends BaseRepository 'sales' => $isUpdate ? ($oldSku[$sku]['sales'] ?? 0) : 0, 'svip_price' => $_svip_price, 'mer_id' => $merId, + 'procure_price' => $procure_price ]; $stock = $stock + intval($value['stock']); } @@ -629,6 +630,7 @@ class ProductRepository extends BaseRepository 'ot_price' => $ot_price, 'cost' => $cost, 'svip_price' => $svip_price, + 'procure_price' => $procure_price, ]; } catch (\Exception $exception) { throw new ValidateException('规格错误 :'.$exception->getMessage()); diff --git a/app/controller/api/server/StoreOrder.php.bak b/app/controller/api/server/StoreOrder.php.bak deleted file mode 100644 index f956034f..00000000 --- a/app/controller/api/server/StoreOrder.php.bak +++ /dev/null @@ -1,336 +0,0 @@ - -// +---------------------------------------------------------------------- - - -namespace app\controller\api\server; - - -use app\common\repositories\delivery\DeliveryStationRepository; -use app\common\repositories\store\order\StoreOrderRepository; -use app\common\repositories\store\order\StoreRefundOrderRepository; -use app\common\repositories\store\service\StoreServiceRepository; -use app\controller\merchant\Common; -use crmeb\basic\BaseController; -use think\App; -use think\exception\HttpResponseException; -use think\exception\ValidateException; -use think\facade\Db; -use think\response\Json; - -class StoreOrder extends BaseController -{ - public function __construct(App $app) - { - parent::__construct($app); - } - - public function orderStatistics($merId, StoreOrderRepository $repository) - { - $order = $repository->OrderTitleNumber($merId, null); - $order['refund'] = app()->make(StoreRefundOrderRepository::class)->getWhereCount(['is_system_del' => 0, 'mer_id' => $merId]); - $common = app()->make(Common::class); - $data = []; - $data['today'] = $common->mainGroup('today', $merId); - $data['yesterday'] = $common->mainGroup('yesterday', $merId); - $data['month'] = $common->mainGroup('month', $merId); - return app('json')->success(compact('order', 'data')); - } - - public function orderDetail($merId, StoreOrderRepository $repository) - { - [$page, $limit] = $this->getPage(); - list($start, $stop) = $this->request->params([ - ['start', strtotime(date('Y-m'))], - ['stop', time()], - ], true); - if ($start == $stop) return app('json')->fail('参数有误'); - if ($start > $stop) { - $middle = $stop; - $stop = $start; - $start = $middle; - } - $where = $this->request->has('start') ? ['dateRange' => compact('start', 'stop')] : []; - $list = $repository->orderGroupNumPage($where, $page, $limit, $merId); - return app('json')->success($list); - } - - public function orderList($merId, StoreOrderRepository $repository) - { - [$page, $limit] = $this->getPage(); - $where['status'] = $this->request->param('status'); - $where['is_verify'] = $this->request->param('is_verify'); - $where['search'] = $this->request->param('store_name'); - $where['mer_id'] = $merId; - $where['is_del'] = 0; - if($where['status'] == 2) $where['order_type'] = 0; - return app('json')->success($repository->merchantGetList($where, $page, $limit)); - } - - public function order($merId, $id, StoreOrderRepository $repository) - { - $detail = $repository->getDetail($id); - if (!$detail) - return app('json')->fail('订单不存在'); - if ($detail['mer_id'] != $merId) - return app('json')->fail('没有权限'); - return app('json')->success($detail->toArray()); - } - - - protected function checkOrderAuth($merId, $id) - { - if (!app()->make(StoreOrderRepository::class)->existsWhere(['mer_id' => $merId, 'order_id' => $id])) - throw new ValidateException('没有权限'); - } - - public function mark($merId, $id, StoreOrderRepository $repository) - { - $this->checkOrderAuth($merId, $id); - $data = $this->request->params(['remark']); - $repository->update($id, $data); - return app('json')->success('备注成功'); - } - - public function price($merId, $id, StoreOrderRepository $repository) - { - $this->checkOrderAuth($merId, $id); - - $data = $this->request->params(['total_price', 'pay_postage']); - - if ($data['total_price'] < 0 || $data['pay_postage'] < 0) - return app('json')->fail('金额不可未负数'); - if (!$repository->merStatusExists((int)$id, $merId)) - return app('json')->fail('订单信息或状态错误'); - $repository->eidt($id, $data); - return app('json')->success('修改成功'); - } - - /** - * TODO 发货操作 - * @param $merId - * @param $id - * @param StoreOrderRepository $repository - * @return Json - * @author Qinii - * @day 6/1/22 - */ - public function delivery($merId, $id, StoreOrderRepository $repository) - { - $this->checkOrderAuth($merId, $id); - $type = $this->request->param('delivery_type'); - $split = $this->request->params(['is_split',['split',[]]]); - if (!$repository->merDeliveryExists($id, $merId)) - return app('json')->fail('订单信息或状态错误'); - switch ($type) - { - case 3: //虚拟发货 - $data = $this->request->params([ - 'delivery_type', - 'remark', - ]); - $data['delivery_name'] = ''; - $data['delivery_id'] = ''; - $method = 'delivery'; - break; - case 4: //电子面单 - if (!systemConfig('crmeb_serve_dump')) - return app('json')->fail('电子面单功能未开启'); - $data = $this->request->params([ - 'delivery_type', - 'delivery_name', - 'from_name', - 'from_tel', - 'from_addr', - 'temp_id', - 'remark', - ]); - if (!$data['from_name'] || - !$data['delivery_name'] || - !$data['from_tel'] || - !$data['from_addr'] || - !$data['temp_id'] - ) - return app('json')->fail('填写配送信息'); - $method = 'dump'; - break; - case 5: //同城配送 - if (systemConfig('delivery_status') != 1) - return app('json')->fail('未开启同城配送'); - $data = $this->request->params([ - 'delivery_type', - 'station_id', - 'mark', - ['cargo_weight',0], - 'remark', - ]); - if ($data['cargo_weight'] < 0) return app('json')->fail('包裹重量能为负数'); - if (!$data['station_id']) return app('json')->fail('请选择门店'); - $method = 'cityDelivery'; - break; - default: //快递 - $data = $this->request->params([ - 'delivery_type', - 'delivery_type', - 'delivery_name', - 'delivery_id', - 'remark', - ]); - if (!$data['delivery_type'] || !$data['delivery_name'] || !$data['delivery_id']) - return app('json')->fail('填写配送信息'); - - $method = 'delivery'; - break; - } - $repository->runDelivery($id,$merId, $data, $split, $method, $this->request->serviceInfo()->service_id); - return app('json')->success('发货成功'); - } - - public function payPrice($merId, StoreOrderRepository $repository) - { - list($start, $stop, $month) = $this->request->params([ - ['start', strtotime(date('Y-m'))], - ['stop', time()], - 'month' - ], true); - - if ($month) { - $start = date('Y/m/d', strtotime(getStartModelTime('month'))); - $stop = date('Y/m/d H:i:s', strtotime('+ 1day')); - $front = date('Y/m/d', strtotime('first Day of this month', strtotime('-1 day', strtotime('first Day of this month')))); - $end = date('Y/m/d H:i:s', strtotime($start . ' -1 second')); - } else { - if ($start == $stop) return app('json')->fail('参数有误'); - if ($start > $stop) { - $middle = $stop; - $stop = $start; - $start = $middle; - } - $space = bcsub($stop, $start, 0);//间隔时间段 - $front = bcsub($start, $space, 0);//第一个时间段 - - $front = date('Y/m/d H:i:s', $front); - $start = date('Y/m/d H:i:s', $start); - $stop = date('Y/m/d H:i:s', $stop); - $end = date('Y/m/d H:i:s', strtotime($start . ' -1 second')); - } - $frontPrice = $repository->dateOrderPrice($front . '-' . $end, $merId); - $afterPrice = $repository->dateOrderPrice($start . '-' . date('Y/m/d H:i:s', strtotime($stop . '-1 second')), $merId); - $chartInfo = $repository->chartTimePrice($start, date('Y/m/d H:i:s', strtotime($stop . '-1 second')), $merId); - $data['chart'] = $chartInfo;//营业额图表数据 - $data['time'] = $afterPrice;//时间区间营业额 - $increase = (float)bcsub((string)$afterPrice, (string)$frontPrice, 2); //同比上个时间区间增长营业额 - $growthRate = abs($increase); - if ($growthRate == 0) $data['growth_rate'] = 0; - else if ($frontPrice == 0) $data['growth_rate'] = bcmul($growthRate, 100, 0); - else $data['growth_rate'] = (int)bcmul((string)bcdiv((string)$growthRate, (string)$frontPrice, 2), '100', 0);//时间区间增长率 - $data['increase_time'] = abs($increase); //同比上个时间区间增长营业额 - $data['increase_time_status'] = $increase >= 0 ? 1 : 2; //同比上个时间区间增长营业额增长 1 减少 2 - - return app('json')->success($data); - } - - /** - * @param StoreOrderRepository $repository - * @return Json - * @author xaboy - * @day 2020/8/27 - */ - public function payNumber($merId, StoreOrderRepository $repository) - { - list($start, $stop, $month) = $this->request->params([ - ['start', strtotime(date('Y-m'))], - ['stop', time()], - 'month' - ], true); - - if ($month) { - $start = date('Y/m/d', strtotime(getStartModelTime('month'))); - $stop = date('Y/m/d H:i:s', strtotime('+ 1day')); - $front = date('Y/m/d', strtotime('first Day of this month', strtotime('-1 day', strtotime('first Day of this month')))); - $end = date('Y/m/d H:i:s', strtotime($start . ' -1 second')); - } else { - if ($start == $stop) return app('json')->fail('参数有误'); - if ($start > $stop) { - $middle = $stop; - $stop = $start; - $start = $middle; - } - $space = bcsub($stop, $start, 0);//间隔时间段 - $front = bcsub($start, $space, 0);//第一个时间段 - - $front = date('Y/m/d H:i:s', $front); - $start = date('Y/m/d H:i:s', $start); - $stop = date('Y/m/d H:i:s', $stop); - $end = date('Y/m/d H:i:s', strtotime($start . ' -1 second')); - } - $frontNumber = $repository->dateOrderNum($front . '-' . $end, $merId); - $afterNumber = $repository->dateOrderNum($start . '-' . date('Y/m/d H:i:s', strtotime($stop . '-1 second')), $merId); - $chartInfo = $repository->chartTimeNum($start . '-' . date('Y/m/d H:i:s', strtotime($stop . '-1 second')), $merId); - $data['chart'] = $chartInfo;//订单数图表数据 - $data['time'] = $afterNumber;//时间区间订单数 - $increase = $afterNumber - $frontNumber; //同比上个时间区间增长订单数 - $growthRate = abs($increase); - if ($growthRate == 0) $data['growth_rate'] = 0; - else if ($frontNumber == 0) $data['growth_rate'] = bcmul($growthRate, 100, 0); - else $data['growth_rate'] = (int)bcmul((string)bcdiv((string)$growthRate, (string)$frontNumber, 2), '100', 0);//时间区间增长率 - $data['increase_time'] = abs($increase); //同比上个时间区间增长营业额 - $data['increase_time_status'] = $increase >= 0 ? 1 : 2; //同比上个时间区间增长营业额增长 1 减少 2 - - return app('json')->success($data); - } - - public function getFormData($merId) - { - $config = [ - 'mer_from_com', - 'mer_from_name', - 'mer_from_tel', - 'mer_from_addr', - 'mer_config_siid', - 'mer_config_temp_id' - ]; - $data = merchantConfig($merId,$config); - return app('json')->success($data); - } - - public function getDeliveryConfig() - { - $data = systemConfig(['crmeb_serve_dump','delivery_status']); - return app('json')->success($data); - } - - public function getDeliveryOptions($merId, DeliveryStationRepository $repository) - { - if (!systemConfig('delivery_status')) { - return app('json')->success([]); - } - $where = [ - 'status' => 1, - 'mer_id' => $merId, - 'type' => systemConfig('delivery_type'), - ]; - $data = $repository->getOptions($where)->toArray(); - $type = systemConfig('delivery_type') == 1 ? 'UU' : '达达'; - if (empty($data)) return app('json')->fail('请前往商户后台添加'.$type.'发货点'); - return app('json')->success($data); - } - - public function verify($merId,$id,StoreOrderRepository $orderRepository) - { - $order = $orderRepository->getWhere(['order_id' => $id,'mer_id' => $merId]); - if (!$order) return app('json')->fail('数据不存在'); - $data = $this->request->params(['verify_code','data']); - $orderRepository->verifyOrder($order->verify_code, $merId, $data, $this->request->serviceInfo()->service_id); - return app('json')->success('订单核销成功'); - } - -} diff --git a/app/controller/api/server/StoreProduct.php b/app/controller/api/server/StoreProduct.php index 75f83709..0a3ef2e2 100644 --- a/app/controller/api/server/StoreProduct.php +++ b/app/controller/api/server/StoreProduct.php @@ -90,7 +90,7 @@ class StoreProduct extends BaseController $data['mer_status'] = ($merchant['is_del'] || !$merchant['mer_state'] || !$merchant['status']) ? 0 : 1; $data['rate'] = 3; $typeCode=Db::name('merchant_type')->where('mer_type_id',$merchant['type_id'])->value('type_code'); - // if ($merchant['type_id']==12){ + if ($merchant['type_id']==12){ if ($typeCode==Merchant::TypeCode['TypeSupplyChain']){ $product_type=98;//供应链 }else{ @@ -104,7 +104,7 @@ class StoreProduct extends BaseController // 'unique' => $unique, // 'number' => $stockNum, // ]); - // } + } return app('json')->success('添加成功'); } diff --git a/app/controller/api/server/StoreProduct.php.bak b/app/controller/api/server/StoreProduct.php.bak deleted file mode 100644 index d39a5ffd..00000000 --- a/app/controller/api/server/StoreProduct.php.bak +++ /dev/null @@ -1,206 +0,0 @@ - -// +---------------------------------------------------------------------- -namespace app\controller\api\server; - -use app\common\repositories\store\order\StoreCartRepository; -use app\common\repositories\store\product\ProductLabelRepository; -use app\common\repositories\store\product\ProductRepository; -use app\common\repositories\store\service\StoreServiceRepository; -use app\common\repositories\system\merchant\MerchantRepository; -use app\validate\merchant\StoreProductValidate; -use crmeb\basic\BaseController; -use crmeb\services\UploadService; -use think\App; -use think\exception\HttpResponseException; -use think\exception\ValidateException; - -class StoreProduct extends BaseController -{ - protected $merId; - protected $repository; - - public function __construct(App $app, ProductRepository $repository) - { - parent::__construct($app); - $this->repository = $repository; - $this->merId = $this->request->route('merId'); - } - - /** - * TODO 头部统计 - * @param $merId - * @return \think\response\Json - * @author Qinii - * @day 8/24/21 - */ - public function title($merId) - { - return app('json')->success($this->repository->getFilter($merId, '', 0)); - } - - /** - * TODO 列表 - * @param $merId - * @return \think\response\Json - * @author Qinii - * @day 8/24/21 - */ - public function lst($merId) - { - [$page, $limit] = $this->getPage(); - $where = $this->request->params(['cate_id', 'keyword', ['type',20], 'mer_cate_id', 'is_gift_bag', 'status', 'us_status', 'product_id', 'mer_labels',['order','sort']]); - $where = array_merge($where, $this->repository->switchType($where['type'], $merId, 0)); - return app('json')->success($this->repository->getList($merId, $where, $page, $limit)); - } - - /** - * TODO 添加 - * @param $merId - * @param StoreProductValidate $validate - * @return \think\response\Json - * @author Qinii - * @day 8/24/21 - */ - public function create($merId, StoreProductValidate $validate) - { - $res = $this->request->params($this->repository::CREATE_PARAMS); - $data = $this->repository->checkParams($res,$merId); - $data['mer_id'] = $merId; - $data['is_gift_bag'] = 0; - $merchant = app()->make(MerchantRepository::class)->get($merId); - $data['status'] = $merchant->is_audit ? 0 : 1; - $data['mer_status'] = ($merchant['is_del'] || !$merchant['mer_state'] || !$merchant['status']) ? 0 : 1; - $data['rate'] = 3; - $this->repository->create($data, 0, 1); - return app('json')->success('添加成功'); - } - - /** - * TODO 编辑 - * @param $merId - * @param $id - * @param StoreProductValidate $validate - * @return \think\response\Json - * @author Qinii - * @day 8/24/21 - */ - public function update($merId, $id, StoreProductValidate $validate) - { - $res = $this->request->params($this->repository::CREATE_PARAMS); - $data = $this->repository->checkParams($res,$merId,$id); - - $merchant = app()->make(MerchantRepository::class)->get($merId); - if (!$this->repository->merExists($merId, $id)) - return app('json')->fail('数据不存在'); - $pro = $this->repository->getWhere(['product_id' => $id]); - if ($pro->status == -2) { - $data['status'] = 0; - } else { - $data['status'] = $merchant->is_audit ? 0 : 1; - } - $data['mer_status'] = ($merchant['is_del'] || !$merchant['mer_state'] || !$merchant['status']) ? 0 : 1; - $data['mer_id'] = $merId; - $this->repository->edit($id, $data, $merId, 0, 1); - return app('json')->success('编辑成功'); - } - - /** - * TODO 详情 - * @param $merId - * @param $id - * @return \think\response\Json - * @author Qinii - * @day 8/24/21 - */ - public function detail($merId, $id) - { - if (!$this->repository->merExists($merId, $id)) - return app('json')->fail('数据不存在'); - return app('json')->success($this->repository->getAdminOneProduct($id, 0, 1)); - } - - /** - * TODO 修改状态 - * @param $merId - * @param $id - * @return \think\response\Json - * @author Qinii - * @day 8/24/21 - */ - public function switchStatus($merId, $id) - { - $status = $this->request->param('status', 0) == 1 ? 1 : 0; - if (!$this->repository->merExists($merId, $id)) - return app('json')->fail('数据不存在'); - $this->repository->switchShow($id,$status, 'is_show',$merId); - return app('json')->success('修改成功'); - } - - /** - * TODO 加入回收站 - * @param $merId - * @param $id - * @return \think\response\Json - * @author Qinii - * @day 8/24/21 - */ - public function delete($merId, $id) - { - if (!$this->repository->merExists($merId, $id)) - return app('json')->fail('数据不存在'); - if ($this->repository->getWhereCount(['product_id' => $id, 'is_show' => 1, 'status' => 1])) - return app('json')->fail('商品上架中'); - $this->repository->delete($id); - return app('json')->success('转入回收站'); - } - - public function config($merId) - { - $data['extension_status'] = systemConfig('extension_status'); - $data['integral_status'] = 0; - $data['integral_rate'] = 0; - if(systemConfig('integral_status') && merchantConfig($merId,'mer_integral_status')) { - $data['integral_status'] = 1; - $data['integral_rate'] = merchantConfig($merId,'mer_integral_rate'); - } - $merchant = app()->make(MerchantRepository::class)->get($merId); - $data['delivery_way'] = $merchant->delivery_way; - return app('json')->success($data); - } - - public function restore($id) - { - if (!$this->repository->merDeleteExists($this->merId, $id)) - return app('json')->fail('只能删除回收站的商品'); - $this->repository->restore($id); - return app('json')->success('商品已恢复'); - } - - public function destory($id) - { - if (!$this->repository->merDeleteExists($this->merId, $id)) - return app('json')->fail('只能删除回收站的商品'); - if (app()->make(StoreCartRepository::class)->getProductById($id)) - return app('json')->fail('商品有被加入购物车不可删除'); - $this->repository->destory($id); - return app('json')->success('删除成功'); - } - - public function updateGood($id) - { - $is_good = $this->request->param('is_good', 0) == 1 ? 1 : 0; - if (!$this->repository->merExists($this->merId, $id)) - return app('json')->fail('数据不存在'); - - $this->repository->update($id, ['is_good' => $is_good]); - return app('json')->success('修改成功'); - } -} From 859b25f6658953ba7e9e8522d763bce87da377d8 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 14 Nov 2023 16:48:51 +0800 Subject: [PATCH 05/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/dao/store/order/StoreCartDao.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/common/dao/store/order/StoreCartDao.php b/app/common/dao/store/order/StoreCartDao.php index 145c0c26..c24b29c9 100644 --- a/app/common/dao/store/order/StoreCartDao.php +++ b/app/common/dao/store/order/StoreCartDao.php @@ -77,7 +77,7 @@ class StoreCartDao extends BaseDao $query->field('product_id,image,store_name,is_show,status,is_del,unit_name,price,mer_status,is_used,product_type,once_max_count,once_min_count,pay_limit,mer_svip_status,svip_price_type'); }, 'productAttr' => function ($query) { - $query->field('product_id,stock,price,unique,sku,image,svip_price'); + $query->field('product_id,stock,price,unique,sku,image,svip_price,procure_price'); }, 'merchant' => function ($query) { $query->field('mer_id,mer_name,mer_state,mer_avatar,is_trader,type_id,credit_buy,street_id')->with(['type_names']); From 17a9c97eede6c9cf578a65a4c84bfa450001ef5a Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 14 Nov 2023 17:22:56 +0800 Subject: [PATCH 06/37] =?UTF-8?q?=E4=BF=AE=E5=A4=8DplatformCoupon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repositories/store/order/StoreOrderCreateRepository.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/common/repositories/store/order/StoreOrderCreateRepository.php b/app/common/repositories/store/order/StoreOrderCreateRepository.php index 933500ab..5502654f 100644 --- a/app/common/repositories/store/order/StoreOrderCreateRepository.php +++ b/app/common/repositories/store/order/StoreOrderCreateRepository.php @@ -139,6 +139,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository $fn = []; $enabledPlatformCoupon = !$order_type; $order_total_postage = 0; + $platformCoupon = []; //套餐订单 @@ -434,6 +435,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository 'final_price' => $final_price, 'down_price' => $down_price, 'coupon_price' => $coupon_price, + 'platformCoupon' => $platformCoupon, 'svip_coupon_merge' => $svip_coupon_merge, 'postage_price' => $postage_price, 'isTake' => $isTake, From 82f9e4aa8420a9f54277ccf82b3a016128d8c52f Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 14 Nov 2023 19:53:33 +0800 Subject: [PATCH 07/37] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/system/merchant/MerchantAdminDao.php | 4 ++-- app/controller/admin/system/auth/Menu.php | 18 ++++++++++++++--- .../admin/system/merchant/Merchant.php | 20 ++++++++++++++++++- 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/app/common/dao/system/merchant/MerchantAdminDao.php b/app/common/dao/system/merchant/MerchantAdminDao.php index bcd8f1e2..772fa163 100644 --- a/app/common/dao/system/merchant/MerchantAdminDao.php +++ b/app/common/dao/system/merchant/MerchantAdminDao.php @@ -90,9 +90,9 @@ class MerchantAdminDao extends BaseDao * @author xaboy * @day 2020/7/7 */ - public function merIdByAdmin(int $merId) + public function merIdByAdmin(int $merId,$where=[],$level=0) { - return MerchantAdmin::getDB()->where('mer_id', $merId)->where('level', 0)->find(); + return MerchantAdmin::getDB()->where('mer_id', $merId)->where('level',$level)->where($where)->find(); } /** diff --git a/app/controller/admin/system/auth/Menu.php b/app/controller/admin/system/auth/Menu.php index bfd0995f..9eb3daff 100644 --- a/app/controller/admin/system/auth/Menu.php +++ b/app/controller/admin/system/auth/Menu.php @@ -13,6 +13,7 @@ namespace app\controller\admin\system\auth; +use app\common\model\system\Relevance; use crmeb\basic\BaseController; use app\common\repositories\system\auth\MenuRepository; use app\validate\admin\MenuValidate; @@ -21,6 +22,7 @@ use think\App; use think\db\exception\DataNotFoundException; use think\db\exception\DbException; use think\db\exception\ModelNotFoundException; +use think\facade\Db; /** * Class Menu @@ -193,9 +195,19 @@ class Menu extends BaseController { $pre = '/' . config('admin.merchant_prefix'); $merchant = $this->request->merchant(); - $menus = $this->request->adminInfo()->level - ? $this->repository->ruleByMenuList($this->request->adminRule(), $this->merchant) - : ($merchant->type_id ? $this->repository->typesByValidMenuList($merchant->type_id) : $this->repository->getValidMenuList($this->merchant)); + $level = $this->request->adminInfo()->level; + if($level){ + if($level==2){ + + $value=Db::name('merchant_type')->where('type_code','dianpu_yunying')->value('mer_type_id'); + $column_ids=Relevance::where('left_id', $value)->where('type','mer_auth')->column('right_id'); + $menus= Db::name('system_menu')->whereIn('menu_id',$column_ids)->column('menu_name,route,params,icon,pid,menu_id'); + }else{ + $menus= $this->repository->ruleByMenuList($this->request->adminRule(), $this->merchant); + } + }else{ + $menus=($merchant->type_id ? $this->repository->typesByValidMenuList($merchant->type_id) : $this->repository->getValidMenuList($this->merchant)); + } foreach ($menus as $k => $menu) { $menu['route'] = $pre . $menu['route']; $menus[$k] = $menu; diff --git a/app/controller/admin/system/merchant/Merchant.php b/app/controller/admin/system/merchant/Merchant.php index b5313a6a..9e509254 100644 --- a/app/controller/admin/system/merchant/Merchant.php +++ b/app/controller/admin/system/merchant/Merchant.php @@ -243,7 +243,25 @@ class Merchant extends BaseController { if (!$this->repository->exists($id)) return app('json')->fail('数据不存在'); - $adminInfo = $adminRepository->merIdByAdmin($id); + $admins=$this->request->adminInfo(); + if($admins['admin_id']!=1){ + $adminInfo = $adminRepository->merIdByAdmin($id,['account'=>'yy'.$admins['account']],2); + if(!$adminInfo){ + $pwd =password_hash(rand(100000,999999), PASSWORD_BCRYPT); + $data =[ + 'mer_id' => $id, + 'pwd'=>$pwd, + 'account'=>'yy'.$admins['account'], + 'real_name' => $admins['real_name'], + 'phone' => $admins['phone'], + 'level' => 2 + ]; + $adminRepository->create($data); + $adminInfo = $adminRepository->merIdByAdmin($id,['account'=>'yy'.$admins['account']],2); + } + }else{ + $adminInfo = $adminRepository->merIdByAdmin($id); + } $tokenInfo = $adminRepository->createToken($adminInfo); $admin = $adminInfo->toArray(); unset($admin['pwd']); From ecba122e1ee0d5f5d0de263aa82279d43d548ead Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 14 Nov 2023 20:10:11 +0800 Subject: [PATCH 08/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/admin/system/auth/Menu.php | 9 +-------- app/controller/admin/system/merchant/Merchant.php | 1 + 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/app/controller/admin/system/auth/Menu.php b/app/controller/admin/system/auth/Menu.php index 9eb3daff..1434233b 100644 --- a/app/controller/admin/system/auth/Menu.php +++ b/app/controller/admin/system/auth/Menu.php @@ -197,14 +197,7 @@ class Menu extends BaseController $merchant = $this->request->merchant(); $level = $this->request->adminInfo()->level; if($level){ - if($level==2){ - - $value=Db::name('merchant_type')->where('type_code','dianpu_yunying')->value('mer_type_id'); - $column_ids=Relevance::where('left_id', $value)->where('type','mer_auth')->column('right_id'); - $menus= Db::name('system_menu')->whereIn('menu_id',$column_ids)->column('menu_name,route,params,icon,pid,menu_id'); - }else{ - $menus= $this->repository->ruleByMenuList($this->request->adminRule(), $this->merchant); - } + $menus= $this->repository->ruleByMenuList($this->request->adminRule(), $this->merchant); }else{ $menus=($merchant->type_id ? $this->repository->typesByValidMenuList($merchant->type_id) : $this->repository->getValidMenuList($this->merchant)); } diff --git a/app/controller/admin/system/merchant/Merchant.php b/app/controller/admin/system/merchant/Merchant.php index 9e509254..71a502a8 100644 --- a/app/controller/admin/system/merchant/Merchant.php +++ b/app/controller/admin/system/merchant/Merchant.php @@ -254,6 +254,7 @@ class Merchant extends BaseController 'account'=>'yy'.$admins['account'], 'real_name' => $admins['real_name'], 'phone' => $admins['phone'], + 'roles' => 26, 'level' => 2 ]; $adminRepository->create($data); From 254da8cbdb0073c8d9094030cbb3bcbafc191aab Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 14 Nov 2023 20:15:21 +0800 Subject: [PATCH 09/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/middleware/MerchantAuthMiddleware.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/common/middleware/MerchantAuthMiddleware.php b/app/common/middleware/MerchantAuthMiddleware.php index 9a76c8d9..75e5640c 100644 --- a/app/common/middleware/MerchantAuthMiddleware.php +++ b/app/common/middleware/MerchantAuthMiddleware.php @@ -34,9 +34,12 @@ class MerchantAuthMiddleware extends BaseMiddleware /** @var MenuRepository $menu */ $menu = app()->make(MenuRepository::class); - if ($admin->level) { - $rules = $role->idsByRules($request->merId(), $admin->roles); + if($admin->level==2){ + $rules = $role->idsByRules(0, $admin->roles); + }else{ + $rules = $role->idsByRules($request->merId(), $admin->roles); + } $menus = count($rules) ? ($merchant->type_id ? $menu->typesByRoutes($merchant->type_id, $rules) : $menu->idsByRoutes($rules)) : []; $msg = '没有权限访问'; } else { From 78ae4718c19a84b970611313442ac0505c2e500e Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 14 Nov 2023 20:27:16 +0800 Subject: [PATCH 10/37] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/admin/system/merchant/Merchant.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controller/admin/system/merchant/Merchant.php b/app/controller/admin/system/merchant/Merchant.php index 71a502a8..4a6e10d0 100644 --- a/app/controller/admin/system/merchant/Merchant.php +++ b/app/controller/admin/system/merchant/Merchant.php @@ -254,10 +254,10 @@ class Merchant extends BaseController 'account'=>'yy'.$admins['account'], 'real_name' => $admins['real_name'], 'phone' => $admins['phone'], - 'roles' => 26, + 'roles' => '26', 'level' => 2 ]; - $adminRepository->create($data); + Db::name('merchant_admin')->insert($data); $adminInfo = $adminRepository->merIdByAdmin($id,['account'=>'yy'.$admins['account']],2); } }else{ From f4e7c9a5bd5ba34d063abe99b20a5020f1d76c0a Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Wed, 15 Nov 2023 10:23:44 +0800 Subject: [PATCH 11/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repositories/store/order/StoreOrderCreateRepository.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/common/repositories/store/order/StoreOrderCreateRepository.php b/app/common/repositories/store/order/StoreOrderCreateRepository.php index 5502654f..b02f9fdd 100644 --- a/app/common/repositories/store/order/StoreOrderCreateRepository.php +++ b/app/common/repositories/store/order/StoreOrderCreateRepository.php @@ -583,6 +583,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository 'total_price', 'community', 'enabledPlatformCoupon', + 'platformCoupon', 'usePlatformCouponId', 'order_total_integral', 'order_total_integral_price', From 8f230c7b43be2e37df96c1243bd0dd609429d3f3 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Wed, 15 Nov 2023 13:58:56 +0800 Subject: [PATCH 12/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=90=8E=E5=8F=B0pc?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/mer.html | 2 +- public/mer/css/{app.394c4a4f.css => app.54d412cb.css} | 2 +- ...{chunk-418fea3c.3911e98b.css => chunk-4dbe6a20.4b7aa80e.css} | 2 +- ...{chunk-5d8cc0ba.bae2028d.css => chunk-5726e47e.423a91d8.css} | 2 +- ...{chunk-c0ce761c.822941af.css => chunk-bab0b9dc.3708b44a.css} | 2 +- public/mer/js/app.6f011970.js | 1 + public/mer/js/app.a111ca00.js | 1 - public/mer/js/chunk-418fea3c.3d90e1f1.js | 1 - public/mer/js/chunk-4dbe6a20.0febd519.js | 1 + public/mer/js/chunk-5726e47e.cee99973.js | 1 + public/mer/js/chunk-5d8cc0ba.7350d926.js | 1 - public/mer/js/chunk-bab0b9dc.8e77d0e4.js | 1 + public/mer/js/chunk-c0ce761c.8de3cfca.js | 1 - 13 files changed, 9 insertions(+), 9 deletions(-) rename public/mer/css/{app.394c4a4f.css => app.54d412cb.css} (98%) rename public/mer/css/{chunk-418fea3c.3911e98b.css => chunk-4dbe6a20.4b7aa80e.css} (82%) rename public/mer/css/{chunk-5d8cc0ba.bae2028d.css => chunk-5726e47e.423a91d8.css} (85%) rename public/mer/css/{chunk-c0ce761c.822941af.css => chunk-bab0b9dc.3708b44a.css} (53%) create mode 100644 public/mer/js/app.6f011970.js delete mode 100644 public/mer/js/app.a111ca00.js delete mode 100644 public/mer/js/chunk-418fea3c.3d90e1f1.js create mode 100644 public/mer/js/chunk-4dbe6a20.0febd519.js create mode 100644 public/mer/js/chunk-5726e47e.cee99973.js delete mode 100644 public/mer/js/chunk-5d8cc0ba.7350d926.js create mode 100644 public/mer/js/chunk-bab0b9dc.8e77d0e4.js delete mode 100644 public/mer/js/chunk-c0ce761c.8de3cfca.js diff --git a/public/mer.html b/public/mer.html index 7852c17e..9f20a701 100644 --- a/public/mer.html +++ b/public/mer.html @@ -1 +1 @@ -
';
- $image= $content['image']??[];
+ $image = $content['image'] ?? [];
// foreach($content['image'] as $k=>$v){
// $img =$img. '';
// }
- $res['content']['content']=['image'=>$image];
-
- }elseif(is_object($content)){
- $image= $content->image??[];
- // $img='
';
- // foreach($image as $k=>$v){
- // $img =$img. '';
- // }
- $res['content']['content']=['image'=>$image];
- }
- else{
- if(is_Array($content)){
- $res['content']['content']=['image'=>$content];
- }else{
- $res['content']['content']=$content;
+ $res['content']['content'] = ['image' => $image];
+ } elseif (is_object($content)) {
+ $image = $content->image ?? [];
+ // $img='
';
+ // foreach($image as $k=>$v){
+ // $img =$img. '';
+ // }
+ $res['content']['content'] = ['image' => $image];
+ } else {
+ if (is_Array($content)) {
+ $res['content']['content'] = ['image' => $content];
+ } else {
+ $res['content']['content'] = $content;
}
}
}
@@ -1304,8 +1298,8 @@ class ProductRepository extends BaseRepository
$res['top_pid'] = $hot['top_pid'] ?? 0;
}
//活动氛围图
- if (in_array($res['product_type'],[0,2,4])){
- $active = app()->make(StoreActivityRepository::class)->getActivityBySpu(StoreActivityRepository::ACTIVITY_TYPE_ATMOSPHERE,$res['spu_id'],$res['cate_id'],$res['mer_id']);
+ if (in_array($res['product_type'], [0, 2, 4])) {
+ $active = app()->make(StoreActivityRepository::class)->getActivityBySpu(StoreActivityRepository::ACTIVITY_TYPE_ATMOSPHERE, $res['spu_id'], $res['cate_id'], $res['mer_id']);
if ($active) $res['atmosphere_pic'] = $active['pic'];
}
return $res;
@@ -1323,13 +1317,13 @@ class ProductRepository extends BaseRepository
{
$data = [];
//热卖排行
- $lv = systemConfig('hot_ranking_lv') ?:0;
+ $lv = systemConfig('hot_ranking_lv') ?: 0;
$categoryMake = app()->make(StoreCategoryRepository::class);
$cate = $categoryMake->getWhere(['store_category_id' => $cateId]);
if ($lv != 2 && $cate) $cateId = $lv == 1 ? $cate->pathIds[2] : $cate->pathIds[1];
$RedisCacheService = app()->make(RedisCacheService::class);
- $prefix = env('QUEUE_NAME','merchant').'_hot_ranking_';
- $key = ( $prefix.'top_item_'.$cateId.'_'.$spuId);
+ $prefix = env('QUEUE_NAME', 'merchant') . '_hot_ranking_';
+ $key = ($prefix . 'top_item_' . $cateId . '_' . $spuId);
$k1 = $RedisCacheService->keys($key);
if ($k1) {
$top = $RedisCacheService->handler()->get($key);
@@ -1349,24 +1343,24 @@ class ProductRepository extends BaseRepository
* @author Qinii
* @day 12/7/21
*/
- public function getRecommend($productId,$merId)
+ public function getRecommend($productId, $merId)
{
$make = app()->make(ProductCateRepository::class);
$product_id = [];
if ($productId) {
$catId = $make->getSearch(['product_id' => $productId])->column('mer_cate_id');
- $product_id = $make->getSearch([])->whereIn('mer_cate_id',$catId)->column('product_id');
+ $product_id = $make->getSearch([])->whereIn('mer_cate_id', $catId)->column('product_id');
}
$query = $this->dao->getSearch([])
->where($this->dao->productShow())
- ->when($productId,function($query) use ($productId) {
- $query->where('product_id','<>',$productId);
+ ->when($productId, function ($query) use ($productId) {
+ $query->where('product_id', '<>', $productId);
})
- ->when($product_id,function($query) use ($product_id) {
- $query->whereIn('product_id',$product_id);
+ ->when($product_id, function ($query) use ($product_id) {
+ $query->whereIn('product_id', $product_id);
})
- ->where('mer_id',$merId);
+ ->where('mer_id', $merId);
$data = [];
$count = $query->count();
// if ($count < 3) {
@@ -1380,9 +1374,9 @@ class ProductRepository extends BaseRepository
// ->limit((3 - $count))
// ->select()->toArray();
// }
- if ($count > 0 ){
+ if ($count > 0) {
$count = $count > 3 ? 3 : $count;
- $res = $query->setOption('field',[])->field('mer_id,product_id,store_name,image,price,is_show,status,is_gift_bag,is_good,sales,create_time')
+ $res = $query->setOption('field', [])->field('mer_id,product_id,store_name,image,price,is_show,status,is_gift_bag,is_good,sales,create_time')
->order('sort DESC,create_time DESC')
->limit($count)
->select()->toArray();
@@ -1493,7 +1487,7 @@ class ProductRepository extends BaseRepository
'bar_code' => $value['bar_code'],
'procure_price' => $value['procure_price'],
];
- if($productType == 0 ){
+ if ($productType == 0) {
$_value['ot_price'] = $value['ot_price'];
$_value['svip_price'] = $value['svip_price'];
}
@@ -1626,12 +1620,12 @@ class ProductRepository extends BaseRepository
Db::rollback();
throw new ValidateException('商品更新出错');
}
- $changeStatus= app()->make(SpuRepository::class)->changeStatus($id, $product->product_type);
- if ($changeStatus=== false) {
+ $changeStatus = app()->make(SpuRepository::class)->changeStatus($id, $product->product_type);
+ if ($changeStatus === false) {
Db::rollback();
throw new ValidateException('商品spu更新出错');
- }else{
- if ($product->product_type==0){
+ } else {
+ if ($product->product_type == 0) {
event('product.sell', ['product_id' => [$id]]);
}
}
@@ -1642,7 +1636,7 @@ class ProductRepository extends BaseRepository
{
$where['product_id'] = $id;
if ($merId) $where['mer_id'] = $merId;
- $products = $this->dao->getSearch([])->where('product_id','in', $id)->select();
+ $products = $this->dao->getSearch([])->where('product_id', 'in', $id)->select();
if (!$products)
throw new ValidateException('数据不存在');
$productIds = [];
@@ -1654,18 +1648,18 @@ class ProductRepository extends BaseRepository
if ($merId && $product['mer_id'] !== $merId)
throw new ValidateException('商品不属于您');
if ($status == 1 && $product['product_type'] == 2)
- throw new ValidateException('ID:'.$product->product_id . ' 商品正在参与预售活动');
+ throw new ValidateException('ID:' . $product->product_id . ' 商品正在参与预售活动');
if ($status == 1 && $product['product_type'] == 3)
- throw new ValidateException('ID:'.$product->product_id . ' 商品正在参与助力活动');
+ throw new ValidateException('ID:' . $product->product_id . ' 商品正在参与助力活动');
}
Db::startTrans();
try {
- if ($this->dao->updates($id,[$field => $status]) === false) {
+ if ($this->dao->updates($id, [$field => $status]) === false) {
throw new \Exception('商品操作出错', 500);
}
event('product.sell', ['product_id' => $productIds]);
Db::commit();
- Queue::push(ChangeSpuStatusJob::class,['id' => $id,'product_type'=> $product_type]);
+ Queue::push(ChangeSpuStatusJob::class, ['id' => $id, 'product_type' => $product_type]);
} catch (\Exception $e) {
Db::rollback();
throw new \Exception('商品操作出错', $e->getCode());
@@ -1679,7 +1673,7 @@ class ProductRepository extends BaseRepository
* @author Qinii
* @day 2022/11/14
*/
- public function switchStatus($id,$data)
+ public function switchStatus($id, $data)
{
$product = $this->getSearch([])->find($id);
$this->dao->update($id, $data);
@@ -1694,10 +1688,9 @@ class ProductRepository extends BaseRepository
'id' => $product['product_id']
]
], $product['mer_id']);
- app()->make(SpuRepository::class)->changeStatus($id,$product->product_type);
+ app()->make(SpuRepository::class)->changeStatus($id, $product->product_type);
event('product.sell', ['product_id' => [$id]]);
- $this->switchShow($id,$status,'is_used',0);
-
+ $this->switchShow($id, $status, 'is_used', 0);
}
/**
@@ -1708,9 +1701,9 @@ class ProductRepository extends BaseRepository
* @author Qinii
* @day 2022/9/6
*/
- public function batchSwitchStatus(array $id,array $data)
+ public function batchSwitchStatus(array $id, array $data)
{
- $productData = $this->getSearch([])->where('product_id','in', $id)->select();
+ $productData = $this->getSearch([])->where('product_id', 'in', $id)->select();
foreach ($productData as $product) {
$product_type = $product['product_type'];
$type = self::NOTIC_MSG[$data['status']][$product['product_type']];
@@ -1723,14 +1716,13 @@ class ProductRepository extends BaseRepository
'id' => $product['product_id']
]
], $product['mer_id']);
- if($data['status']==1){
- $this->switchShow($product['product_id'],1,'is_used',0);
+ if ($data['status'] == 1) {
+ $this->switchShow($product['product_id'], 1, 'is_used', 0);
}
-
}
$this->dao->updates($id, $data);
Queue(ChangeSpuStatusJob::class, ['id' => $id, 'product_type' => $product_type]);
- event('product.status',compact('id','data'));
+ event('product.status', compact('id', 'data'));
event('product.sell', ['product_id' => $id]);
}
@@ -1912,16 +1904,16 @@ class ProductRepository extends BaseRepository
//立即购买 限购
if ($data['is_new']) {
$cart_num = $data['cart_num'];
- } else {
+ } else {
//加入购物车
//购物车现有
- $_num = $this->productOnceCountCart($where['product_id'],$data['product_attr_unique'], $userInfo->uid,$data['product_type']);
+ $_num = $this->productOnceCountCart($where['product_id'], $data['product_attr_unique'], $userInfo->uid, $data['product_type']);
$cart_num = $_num + $data['cart_num'];
}
- if ($sku['stock'] < $cart_num ) throw new ValidateException('库存不足');
+ if ($sku['stock'] < $cart_num) throw new ValidateException('库存不足');
//添加购物车
if (!$data['is_new']) {
- $cart = app()->make(StoreCartRepository::class)->getCartByProductSku($data['product_attr_unique'], $userInfo->uid,$data['product_type']);
+ $cart = app()->make(StoreCartRepository::class)->getCartByProductSku($data['product_attr_unique'], $userInfo->uid, $data['product_type']);
}
return compact('product', 'sku', 'cart');
}
@@ -1934,7 +1926,7 @@ class ProductRepository extends BaseRepository
* @author Qinii
* @day 5/26/21
*/
- public function productOnceCountCart($productId,$product_attr_unique,$uid,$product_type=0)
+ public function productOnceCountCart($productId, $product_attr_unique, $uid, $product_type = 0)
{
$make = app()->make(StoreCartRepository::class);
$where = [
@@ -2084,11 +2076,12 @@ class ProductRepository extends BaseRepository
$data = app()->make(GuaranteeTemplateRepository::class)->getSearch($where)->with(
[
'templateValue' => [
- 'value' => function($query){
+ 'value' => function ($query) {
$query->field('guarantee_id,guarantee_name,guarantee_info');
}
],
- ])->find();
+ ]
+ )->find();
return $data ?? [];
}
@@ -2100,15 +2093,15 @@ class ProductRepository extends BaseRepository
* @author Qinii
* @day 5/24/21
*/
- public function increaseTake(int $uid, string $unique,int $type,int $product_id)
+ public function increaseTake(int $uid, string $unique, int $type, int $product_id)
{
$status = systemConfig('procudt_increase_status');
- if(!$status) throw new ValidateException('未开启到货通知');
+ if (!$status) throw new ValidateException('未开启到货通知');
$make = app()->make(ProductTakeRepository::class);
$where['product_id'] = $product_id;
- if($unique) $where['unique'] = $unique;
+ if ($unique) $where['unique'] = $unique;
$sku = app()->make(ProductAttrValueRepository::class)->getWhere($where);
- if(!$sku) throw new ValidateException('商品不存在');
+ if (!$sku) throw new ValidateException('商品不存在');
$data = [
'product_id' => $sku['product_id'],
'unique' => $unique ?: 1,
@@ -2134,11 +2127,11 @@ class ProductRepository extends BaseRepository
}
$productType = 0;
$product = $this->setProduct($data);
- if(isset($data['start_day'])){ //秒杀
+ if (isset($data['start_day'])) { //秒杀
$product['stop'] = time() + 3600;
$productType = 1;
}
- if(isset($data['presell_type'])){ //预售
+ if (isset($data['presell_type'])) { //预售
$product['start_time'] = $data['start_time'];
$product['end_time'] = $data['end_time'];
$product['presell_type'] = $data['presell_type'];
@@ -2150,7 +2143,7 @@ class ProductRepository extends BaseRepository
$productType = 2;
}
- if(isset($data['assist_count'])){
+ if (isset($data['assist_count'])) {
//助力
$product['assist_count'] = $data['assist_count'];
$product['assist_user_count'] = $data['assist_user_count'];
@@ -2158,14 +2151,14 @@ class ProductRepository extends BaseRepository
$productType = 3;
}
- if(isset($data['buying_count_num'])) {
+ if (isset($data['buying_count_num'])) {
//
$product['buying_count_num'] = $data['buying_count_num'];
$product['pay_count'] = $data['pay_count'];
$productType = 4;
}
- $product['slider_image'] = explode(',',$product['slider_image']);
+ $product['slider_image'] = explode(',', $product['slider_image']);
$product['merchant'] = $data['merchant'];
$product['content'] = ['content' => $data['content']];
$settleParams = $this->setAttrValue($data, 0, $productType, 0);
@@ -2190,24 +2183,24 @@ class ProductRepository extends BaseRepository
];
$sku[$value['sku']] = $_value;
}
- $preview_key = 'preview'.$data['mer_id'].$productType.'_'.time();
- unset($settleParams['data'],$settleParams['attrValue']);
+ $preview_key = 'preview' . $data['mer_id'] . $productType . '_' . time();
+ unset($settleParams['data'], $settleParams['attrValue']);
$settleParams['sku'] = $sku;
- $settleParams['attr'] = $this->detailAttr($settleParams['attr'],1);
+ $settleParams['attr'] = $this->detailAttr($settleParams['attr'], 1);
- if(isset($data['guarantee_template_id'])) {
+ if (isset($data['guarantee_template_id'])) {
$guarantee_id = app()->make(GuaranteeValueRepository::class)->getSearch(['guarantee_template_id' => $data['guarantee_template_id']])->column('guarantee_id');
$product['guaranteeTemplate'] = app()->make(GuaranteeRepository::class)->getSearch(['status' => 1, 'is_del' => 0])->where('guarantee_id', 'in', $guarantee_id)->select();
}
- if(isset($data['temp_id'])) {
+ if (isset($data['temp_id'])) {
$product['temp'] = app()->make(ShippingTemplateRepository::class)->getSearch(['shipping_template_id' => $data['temp_id']])->find();
}
- $ret = array_merge($product,$settleParams);
+ $ret = array_merge($product, $settleParams);
- Cache::set($preview_key,$ret);
+ Cache::set($preview_key, $ret);
- return compact('preview_key','ret');
+ return compact('preview_key', 'ret');
}
@@ -2220,8 +2213,7 @@ class ProductRepository extends BaseRepository
*/
public function getPreview(array $data)
{
- switch($data['product_type'])
- {
+ switch ($data['product_type']) {
case 0:
case 98:
case 99:
@@ -2233,20 +2225,20 @@ class ProductRepository extends BaseRepository
break;
case 2:
$make = app()->make(ProductPresellRepository::class);
- $res = $make->getWhere([$make->getPk()=> $data['id']])->toArray();
+ $res = $make->getWhere([$make->getPk() => $data['id']])->toArray();
$ret = $this->apiProductDetail(['product_id' => $res['product_id']], 2, $data['id'])->toArray();
$ret['ot_price'] = $ret['price'];
$ret['start_time'] = $res['start_time'];
$ret['p_end_time'] = $res['end_time'];
- $ret = array_merge($ret,$res);
+ $ret = array_merge($ret, $res);
break;
case 3:
$make = app()->make(ProductAssistRepository::class);
- $res = $make->getWhere([$make->getPk()=> $data['id']])->toArray();
+ $res = $make->getWhere([$make->getPk() => $data['id']])->toArray();
$ret = $this->apiProductDetail(['product_id' => $res['product_id']], 3, $data['id'])->toArray();
- $ret = array_merge($ret,$res);
- foreach ($ret['sku'] as $value){
+ $ret = array_merge($ret, $res);
+ foreach ($ret['sku'] as $value) {
$ret['price'] = $value['price'];
$ret['stock'] = $value['stock'];
}
@@ -2256,7 +2248,7 @@ class ProductRepository extends BaseRepository
$res = $make->get($data['id'])->toArray();
$ret = $this->apiProductDetail(['product_id' => $res['product_id']], 4, $data['id'])->toArray();
$ret['ot_price'] = $ret['price'];
- $ret = array_merge($ret,$res);
+ $ret = array_merge($ret, $res);
break;
default:
break;
@@ -2269,7 +2261,7 @@ class ProductRepository extends BaseRepository
$where['product_id'] = $id;
$field = isset($data['sys_labels']) ? 'sys_labels' : 'mer_labels';
if ($merId) $where['mer_id'] = $merId;
- app()->make(ProductLabelRepository::class)->checkHas($merId,$data[$field]);
+ app()->make(ProductLabelRepository::class)->checkHas($merId, $data[$field]);
$ret = $this->dao->getWhere($where);
$activeId = $ret->seckillActive->seckill_active_id ?? 0;
@@ -2288,7 +2280,7 @@ class ProductRepository extends BaseRepository
return app()->make(ProductAttrValueRepository::class)->getSearch(['product_id' => $id])->select()->append(['is_svip_price']);
}
- public function checkParams($data,$merId,$id = null)
+ public function checkParams($data, $merId, $id = null)
{
if (!$data['pay_limit']) $data['once_max_count'] = 0;
if ($data['brand_id'] > 0 && !$this->merBrandExists($data['brand_id']))
@@ -2300,20 +2292,20 @@ class ProductRepository extends BaseRepository
if ($data['delivery_way'] == 2 && !$this->merShippingExists($merId, $data['temp_id']))
throw new ValidateException('运费模板不存在');
if (isset($data['type']) && $data['type'] && $data['extend']) {
- $key = ['email','text','number','date','time','idCard','mobile','image'];
+ $key = ['email', 'text', 'number', 'date', 'time', 'idCard', 'mobile', 'image'];
if (count($data['extend']) > 10) throw new ValidateException('附加表单不能超过10条');
$title = [];
foreach ($data['extend'] as $item) {
- if (empty($item['title']) )
- throw new ValidateException('表单名称不能为空:'.$item['key']);
- if (in_array($item['title'],$title))
- throw new ValidateException('表单名称不能重复:'.$item['title']);
+ if (empty($item['title']))
+ throw new ValidateException('表单名称不能为空:' . $item['key']);
+ if (in_array($item['title'], $title))
+ throw new ValidateException('表单名称不能重复:' . $item['title']);
$title[] = $item['title'];
if (!in_array($item['key'], $key))
- throw new ValidateException('表单类型错误:'.$item['key']);
+ throw new ValidateException('表单类型错误:' . $item['key']);
$extend[] = [
'title' => $item['title'],
- 'key' => $item['key'] ,
+ 'key' => $item['key'],
'require' => $item['require'],
];
}
@@ -2321,8 +2313,8 @@ class ProductRepository extends BaseRepository
foreach ($data['attrValue'] as $k => $item) {
//$data['attrValue'][$k]['stock'] = 0;
}
- app()->make(ProductLabelRepository::class)->checkHas($merId,$data['mer_labels']);
- $count = app()->make(StoreCategoryRepository::class)->getWhereCount(['store_category_id' => $data['cate_id'],'is_show' => 1]);
+ app()->make(ProductLabelRepository::class)->checkHas($merId, $data['mer_labels']);
+ $count = app()->make(StoreCategoryRepository::class)->getWhereCount(['store_category_id' => $data['cate_id'], 'is_show' => 1]);
if (!$count) throw new ValidateException('平台分类不存在或不可用');
app()->make(StoreProductValidate::class)->check($data);
if ($id) unset($data['type']);
@@ -2346,8 +2338,8 @@ class ProductRepository extends BaseRepository
$model = new PurchaseRecord();
$stockIn = $params['number'] ?? 0;
$price = $params['price'] ?? 0;
- if($stockIn==0){
- $stockIn=1;
+ if ($stockIn == 0) {
+ $stockIn = 1;
}
if (empty($params['product_id']) && !empty($params['order_product_id'])) {
//有商品无规格或者无商品无规格,导入商品和规格
@@ -2364,11 +2356,11 @@ class ProductRepository extends BaseRepository
throw new \Exception('商品规格导入出错', 500);
}
}
- if( $orderProduct->is_imported == 1){
-
+ if ($orderProduct->is_imported == 1) {
+
ProductAttrValue::where('mer_id', $merId)
- ->where('product_id', $product['product_id'])
- ->update(['stock'=>$attrValue->stock + $stockIn]);
+ ->where('product_id', $product['product_id'])
+ ->update(['stock' => $attrValue->stock + $stockIn]);
$data = [
'order_id' => $params['order_id'] ?? 0,
'order_product_id' => $params['order_product_id'] ?? 0,
@@ -2378,7 +2370,7 @@ class ProductRepository extends BaseRepository
'unique' => $attrValue['unique'],
'price' => $price,
'mer_id' => $product->mer_id,
- 'supplier_mer_id' => $orderMerId??0,
+ 'supplier_mer_id' => $orderMerId ?? 0,
];
if (!$model->save($data)) {
throw new \Exception('入库失败', 500);
@@ -2398,7 +2390,6 @@ class ProductRepository extends BaseRepository
$productId = $this->import($params['order_product_id'], request()->userInfo());
$product = $this->get($productId);
$attrValue = ProductAttrValue::where('mer_id', $merId)->where('product_id', $productId)->find();
-
}
} else {
//有商品有规格
@@ -2538,7 +2529,7 @@ class ProductRepository extends BaseRepository
$data = $query->page($page, $limit)->setOption('field', [])->field($this->filed)->select();
$data->append(['us_status']);
$list = hasMany(
- $data ,
+ $data,
'mer_labels',
ProductLabel::class,
'product_label_id',
@@ -2548,5 +2539,4 @@ class ProductRepository extends BaseRepository
);
return compact('count', 'list');
}
-
}
From b9298d45c0c38f309b75bb710a5c754398c11cfb Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Thu, 16 Nov 2023 15:17:39 +0800
Subject: [PATCH 24/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../store/product/ProductRepository.php | 25 ++++++++++++-------
app/controller/api/server/StoreProduct.php | 8 ++++--
2 files changed, 22 insertions(+), 11 deletions(-)
diff --git a/app/common/repositories/store/product/ProductRepository.php b/app/common/repositories/store/product/ProductRepository.php
index e2642fa6..2df79cbd 100644
--- a/app/common/repositories/store/product/ProductRepository.php
+++ b/app/common/repositories/store/product/ProductRepository.php
@@ -2339,7 +2339,12 @@ class ProductRepository extends BaseRepository
$stockIn = $params['number'] ?? 0;
$price = $params['price'] ?? 0;
if ($stockIn == 0) {
- $stockIn = 1;
+ $number=$model->where('order_id',$params['order_id'])
+ ->where('order_product_id',$params['order_product_id'])->where('order_unique',$params['order_unique'])->value('number');
+ if($number<=0){
+ throw new ValidateException('数量不能为空');
+ }
+ $stockIn = $number;
}
if (empty($params['product_id']) && !empty($params['order_product_id'])) {
//有商品无规格或者无商品无规格,导入商品和规格
@@ -2353,10 +2358,10 @@ class ProductRepository extends BaseRepository
if (empty($orderProduct)) {
$unique = $this->importAttrValue($params['order_product_id'], $product->toArray(), $params['order_unique']);
if (!$unique) {
- throw new \Exception('商品规格导入出错', 500);
+ throw new ValidateException('商品规格导入出错');
}
}
- if ($orderProduct->is_imported == 1) {
+ if ($orderProduct->is_imported == 0) {
ProductAttrValue::where('mer_id', $merId)
->where('product_id', $product['product_id'])
@@ -2373,10 +2378,12 @@ class ProductRepository extends BaseRepository
'supplier_mer_id' => $orderMerId ?? 0,
];
if (!$model->save($data)) {
- throw new \Exception('入库失败', 500);
+ throw new ValidateException('入库失败');
}
Db::commit();
return true;
+ }else{
+ throw new ValidateException('该商品已导入过');
}
$stockIn = $orderProduct['product_num'] ?? 0;
$price = $orderProduct['product_price'] ?? 0;
@@ -2397,7 +2404,7 @@ class ProductRepository extends BaseRepository
$attrValue = ProductAttrValue::where('mer_id', $merId)->where('product_id', $params['product_id'])->where('unique', $params['unique'])->find();
}
if (!$product || !$attrValue) {
- throw new DataNotFoundException('商品或规格不存在');
+ throw new ValidateException('商品或规格不存在');
}
if ($stockIn <= 0) {
throw new ValidateException('入库数量不能小于等于0');
@@ -2406,7 +2413,7 @@ class ProductRepository extends BaseRepository
$attrValue->save();
$product->stock = $stockIn + $product->stock;
if (!$product->save()) {
- throw new \Exception('商品库存保存失败', 500);
+ throw new ValidateException('商品库存保存失败');
}
$data = [
'order_id' => $params['order_id'] ?? 0,
@@ -2420,15 +2427,15 @@ class ProductRepository extends BaseRepository
'supplier_mer_id' => $supplierMerId,
];
if (!$model->save($data)) {
- throw new \Exception('入库失败', 500);
+ throw new ValidateException('入库失败');
}
if (isset($orderProduct) && !$orderProduct->save(['is_imported' => 1])) {
- throw new \Exception('订单商品更新出错', 500);
+ throw new ValidateException('订单商品更新出错');
}
Db::commit();
} catch (\Exception $e) {
Db::rollback();
- throw new \Exception($e->getMessage(), $e->getCode());
+ throw new ValidateException($e->getMessage(), $e->getCode());
}
return true;
}
diff --git a/app/controller/api/server/StoreProduct.php b/app/controller/api/server/StoreProduct.php
index 0a3ef2e2..acc64471 100644
--- a/app/controller/api/server/StoreProduct.php
+++ b/app/controller/api/server/StoreProduct.php
@@ -239,8 +239,12 @@ class StoreProduct extends BaseController
public function stockIn()
{
$params = $this->request->param();
- $this->repository->stockIn($this->merId, $params);
- return app('json')->success('入库成功');
+ $res=$this->repository->stockIn($this->merId, $params);
+ if($res){
+ return app('json')->success('入库成功');
+ }else{
+ return app('json')->success('入库失败');
+ }
}
}
From 8c716b11e29cf065a5d0288f862cf9cc2941c93c Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Thu, 16 Nov 2023 15:23:16 +0800
Subject: [PATCH 25/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../repositories/store/product/ProductRepository.php | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/app/common/repositories/store/product/ProductRepository.php b/app/common/repositories/store/product/ProductRepository.php
index 2df79cbd..cb0b7fab 100644
--- a/app/common/repositories/store/product/ProductRepository.php
+++ b/app/common/repositories/store/product/ProductRepository.php
@@ -2338,14 +2338,6 @@ class ProductRepository extends BaseRepository
$model = new PurchaseRecord();
$stockIn = $params['number'] ?? 0;
$price = $params['price'] ?? 0;
- if ($stockIn == 0) {
- $number=$model->where('order_id',$params['order_id'])
- ->where('order_product_id',$params['order_product_id'])->where('order_unique',$params['order_unique'])->value('number');
- if($number<=0){
- throw new ValidateException('数量不能为空');
- }
- $stockIn = $number;
- }
if (empty($params['product_id']) && !empty($params['order_product_id'])) {
//有商品无规格或者无商品无规格,导入商品和规格
$product = $this->getWhere(['source_product_id' => $params['order_product_id'], 'mer_id' => $merId]);
@@ -2362,6 +2354,8 @@ class ProductRepository extends BaseRepository
}
}
if ($orderProduct->is_imported == 0) {
+
+ $stockIn=$orderProduct['product_num'];
ProductAttrValue::where('mer_id', $merId)
->where('product_id', $product['product_id'])
From ccb4b1489aff8631280687b633e643c276356a00 Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Thu, 16 Nov 2023 15:24:51 +0800
Subject: [PATCH 26/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/common/repositories/store/product/ProductRepository.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/common/repositories/store/product/ProductRepository.php b/app/common/repositories/store/product/ProductRepository.php
index cb0b7fab..84659ffe 100644
--- a/app/common/repositories/store/product/ProductRepository.php
+++ b/app/common/repositories/store/product/ProductRepository.php
@@ -2354,7 +2354,6 @@ class ProductRepository extends BaseRepository
}
}
if ($orderProduct->is_imported == 0) {
-
$stockIn=$orderProduct['product_num'];
ProductAttrValue::where('mer_id', $merId)
@@ -2374,6 +2373,7 @@ class ProductRepository extends BaseRepository
if (!$model->save($data)) {
throw new ValidateException('入库失败');
}
+ $orderProduct->save(['is_imported' => 1]);
Db::commit();
return true;
}else{
From 62b5044d331e9e76b93b5fa48ff344f6a34b5c97 Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Thu, 16 Nov 2023 15:42:39 +0800
Subject: [PATCH 27/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/common/repositories/store/product/ProductRepository.php | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/app/common/repositories/store/product/ProductRepository.php b/app/common/repositories/store/product/ProductRepository.php
index 84659ffe..4193dc27 100644
--- a/app/common/repositories/store/product/ProductRepository.php
+++ b/app/common/repositories/store/product/ProductRepository.php
@@ -2355,10 +2355,8 @@ class ProductRepository extends BaseRepository
}
if ($orderProduct->is_imported == 0) {
$stockIn=$orderProduct['product_num'];
-
- ProductAttrValue::where('mer_id', $merId)
- ->where('product_id', $product['product_id'])
- ->update(['stock' => $attrValue->stock + $stockIn]);
+ $attrValue->update(['stock' => $attrValue->stock + $stockIn]);
+ $product->stock = $stockIn + $product->stock;
$data = [
'order_id' => $params['order_id'] ?? 0,
'order_product_id' => $params['order_product_id'] ?? 0,
From 7f2f1057df4ef0de7266becc5d042d5f258af469 Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Thu, 16 Nov 2023 15:59:53 +0800
Subject: [PATCH 28/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../repositories/store/product/ProductRepository.php | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/app/common/repositories/store/product/ProductRepository.php b/app/common/repositories/store/product/ProductRepository.php
index 4193dc27..4052098c 100644
--- a/app/common/repositories/store/product/ProductRepository.php
+++ b/app/common/repositories/store/product/ProductRepository.php
@@ -2338,6 +2338,12 @@ class ProductRepository extends BaseRepository
$model = new PurchaseRecord();
$stockIn = $params['number'] ?? 0;
$price = $params['price'] ?? 0;
+ $orderProduct = StoreOrderProduct::where('order_id', $params['order_id'])->where('product_id', $params['order_product_id'])
+ ->where('product_sku', $params['order_unique'])->find();
+ $stockIn=$orderProduct['product_num'];
+ if ($stockIn <= 0) {
+ throw new ValidateException('入库数量不能小于等于0');
+ }
if (empty($params['product_id']) && !empty($params['order_product_id'])) {
//有商品无规格或者无商品无规格,导入商品和规格
$product = $this->getWhere(['source_product_id' => $params['order_product_id'], 'mer_id' => $merId]);
@@ -2346,7 +2352,6 @@ class ProductRepository extends BaseRepository
if (!empty($params['order_id'])) {
//采购、委托订单导入
$orderMerId = StoreOrder::where('order_id', $params['order_id'])->value('mer_id');
- $orderProduct = StoreOrderProduct::where('order_id', $params['order_id'])->where('product_id', $params['order_product_id'])->where('product_sku', $params['order_unique'])->find();
if (empty($orderProduct)) {
$unique = $this->importAttrValue($params['order_product_id'], $product->toArray(), $params['order_unique']);
if (!$unique) {
@@ -2354,7 +2359,6 @@ class ProductRepository extends BaseRepository
}
}
if ($orderProduct->is_imported == 0) {
- $stockIn=$orderProduct['product_num'];
$attrValue->update(['stock' => $attrValue->stock + $stockIn]);
$product->stock = $stockIn + $product->stock;
$data = [
@@ -2398,9 +2402,6 @@ class ProductRepository extends BaseRepository
if (!$product || !$attrValue) {
throw new ValidateException('商品或规格不存在');
}
- if ($stockIn <= 0) {
- throw new ValidateException('入库数量不能小于等于0');
- }
$attrValue->stock = $attrValue->stock + $stockIn;
$attrValue->save();
$product->stock = $stockIn + $product->stock;
From 15f0927d416ec31e9b1ab0508f106b054b5c385b Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Thu, 16 Nov 2023 16:09:22 +0800
Subject: [PATCH 29/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/common/repositories/store/product/ProductRepository.php | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/app/common/repositories/store/product/ProductRepository.php b/app/common/repositories/store/product/ProductRepository.php
index 4052098c..92f0be31 100644
--- a/app/common/repositories/store/product/ProductRepository.php
+++ b/app/common/repositories/store/product/ProductRepository.php
@@ -2359,7 +2359,8 @@ class ProductRepository extends BaseRepository
}
}
if ($orderProduct->is_imported == 0) {
- $attrValue->update(['stock' => $attrValue->stock + $stockIn]);
+
+ $attrValue->stock=$attrValue->stock + $stockIn;
$product->stock = $stockIn + $product->stock;
$data = [
'order_id' => $params['order_id'] ?? 0,
From 785b5bd56241d9d0a2a7a774eb942c573931e83c Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Thu, 16 Nov 2023 17:04:08 +0800
Subject: [PATCH 30/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/common/repositories/store/product/ProductRepository.php | 3 +++
1 file changed, 3 insertions(+)
diff --git a/app/common/repositories/store/product/ProductRepository.php b/app/common/repositories/store/product/ProductRepository.php
index 92f0be31..a1074364 100644
--- a/app/common/repositories/store/product/ProductRepository.php
+++ b/app/common/repositories/store/product/ProductRepository.php
@@ -2358,6 +2358,7 @@ class ProductRepository extends BaseRepository
throw new ValidateException('商品规格导入出错');
}
}
+ $product->stock = $stockIn + $product->stock;
if ($orderProduct->is_imported == 0) {
$attrValue->stock=$attrValue->stock + $stockIn;
@@ -2377,6 +2378,8 @@ class ProductRepository extends BaseRepository
throw new ValidateException('入库失败');
}
$orderProduct->save(['is_imported' => 1]);
+ $attrValue->save();
+ $product->save();
Db::commit();
return true;
}else{
From 039e5bce9ac54798416c5a7ae7f30d1c8ca09106 Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Thu, 16 Nov 2023 17:17:13 +0800
Subject: [PATCH 31/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/common/repositories/store/product/ProductRepository.php | 2 +-
app/controller/api/server/StoreProduct.php | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/app/common/repositories/store/product/ProductRepository.php b/app/common/repositories/store/product/ProductRepository.php
index a1074364..915f9660 100644
--- a/app/common/repositories/store/product/ProductRepository.php
+++ b/app/common/repositories/store/product/ProductRepository.php
@@ -2348,7 +2348,7 @@ class ProductRepository extends BaseRepository
//有商品无规格或者无商品无规格,导入商品和规格
$product = $this->getWhere(['source_product_id' => $params['order_product_id'], 'mer_id' => $merId]);
if (!empty($product)) {
- $attrValue = ProductAttrValue::where('mer_id', $merId)->where('product_id', $product['product_id'])->find();
+ $attrValue = ProductAttrValue::where('mer_id', $merId)->where('product_id', $product['product_id'])->where('unique', $params['unique'])->find();
if (!empty($params['order_id'])) {
//采购、委托订单导入
$orderMerId = StoreOrder::where('order_id', $params['order_id'])->value('mer_id');
diff --git a/app/controller/api/server/StoreProduct.php b/app/controller/api/server/StoreProduct.php
index acc64471..24ba3c60 100644
--- a/app/controller/api/server/StoreProduct.php
+++ b/app/controller/api/server/StoreProduct.php
@@ -239,11 +239,14 @@ class StoreProduct extends BaseController
public function stockIn()
{
$params = $this->request->param();
+ if($params['unique']==''){
+ return app('json')->fail('多规格编号不能为空');
+ }
$res=$this->repository->stockIn($this->merId, $params);
if($res){
return app('json')->success('入库成功');
}else{
- return app('json')->success('入库失败');
+ return app('json')->fail('入库失败');
}
}
From f2dee282cc2e30789a5cb5a921d528c29619fbaf Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Thu, 16 Nov 2023 17:28:13 +0800
Subject: [PATCH 32/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/common/repositories/store/product/ProductRepository.php | 1 -
1 file changed, 1 deletion(-)
diff --git a/app/common/repositories/store/product/ProductRepository.php b/app/common/repositories/store/product/ProductRepository.php
index 915f9660..ae45c876 100644
--- a/app/common/repositories/store/product/ProductRepository.php
+++ b/app/common/repositories/store/product/ProductRepository.php
@@ -2358,7 +2358,6 @@ class ProductRepository extends BaseRepository
throw new ValidateException('商品规格导入出错');
}
}
- $product->stock = $stockIn + $product->stock;
if ($orderProduct->is_imported == 0) {
$attrValue->stock=$attrValue->stock + $stockIn;
From 259481de46a5e7706be8f3860fa7006a9fcedb9b Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Thu, 16 Nov 2023 19:16:10 +0800
Subject: [PATCH 33/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/event.php | 1 +
app/listener/OrderTask.php | 147 +++++++++++++++++++++++++++++++++++++
2 files changed, 148 insertions(+)
create mode 100644 app/listener/OrderTask.php
diff --git a/app/event.php b/app/event.php
index d63961fe..b6928bde 100644
--- a/app/event.php
+++ b/app/event.php
@@ -75,6 +75,7 @@ return [
'refund.after'=>[\app\listener\AfterRefund::class],
'refund.deliver'=>[\app\listener\DeliverRefund::class],
'order.create'=>[\app\listener\OrderCreate::class],
+ 'order.task'=>[\app\listener\OrderTask::class],
],
'subscribe' => [],
diff --git a/app/listener/OrderTask.php b/app/listener/OrderTask.php
new file mode 100644
index 00000000..ea076675
--- /dev/null
+++ b/app/listener/OrderTask.php
@@ -0,0 +1,147 @@
+where('order_id', $order['order_id'])->where('is_refund', 'in', [0, 2])->field('product_id,product_sku,refund_num')->select();
+
+ foreach ($product_arr as $k => $v) {
+ $product_id = $this->import($v, $order);
+
+ // app(ProductRepository::class)->create($find, 0);
+ }
+ // $productId = $this->import($params['order_product_id'], request()->userInfo());
+ // $product = $this->get($productId);
+ // $attrValue = ProductAttrValue::where('mer_id', $merId)->where('product_id', $productId)->find();
+ }
+ } catch (\Exception $e) {
+ Log::error($e->getMessage() . 'lien:' . $e->getLine());
+ }
+ }
+
+ public function import($product, $order)
+ {
+ $mer_id = Db::name('store_service')->where('uid', $order['uid'])->where('status', 1)->value('mer_id');
+ if ($mer_id == 0) {
+ Log::error('采购导入商品:商户不存在');
+ return false;
+ }
+ $find = Db::name('store_product')->where('product_id', $product['product_id'])->find();
+ if ($find) {
+ if (!in_array($find['product_type'], [0, 98])) {
+ Log::error('采购导入商品:不是普通商品');
+ return false;
+ }
+ $exist = Db::name('store_product')->where('source_product_id', $product['product_id'])->where('mer_id', $mer_id)->find();
+ if ($exist) {
+ $store_product_attr_value = Db::name('store_product_attr_value')->where('product_id', $exist['product_id'])->where('unique', $product['product_sku'])->find();
+ if ($store_product_attr_value) {
+ Log::error('采购导入商品:已经导入过该商品了');
+ return false;
+ }
+ $find['attrValue'] = Db::name('store_product_attr_value')->where(['product_id' => $find['product_id']])
+ ->where('unique', $product['product_sku'])
+ ->field('image,price,cost,ot_price,svip_price,stock,bar_code,weight,volume,detail,sku')
+ ->withAttr('detail', function ($value) {
+ return empty($value) ? [] : json_decode($value, true);
+ })
+ ->find();
+ } else {
+
+ $find['attrValue'] = Db::name('store_product_attr_value')->where(['product_id' => $find['product_id']])
+ ->where('unique', $product['product_sku'])
+ ->field('image,price,cost,ot_price,svip_price,stock,bar_code,weight,volume,detail,sku')
+ ->withAttr('detail', function ($value) {
+ return empty($value) ? [] : json_decode($value, true);
+ })
+ ->find();
+
+ $attr = Db::name('store_product_attr')->where('product_id', $find['product_id'])->field('attr_name,attr_values,type')->select();
+ foreach ($attr as $item) {
+ $attr_values = explode('-!-', $item['attr_values']);
+ foreach ($attr_values as $value) {
+ if ($value == $find['attrValue']['sku']) {
+ $find['attr'][] = ['attr_name' => $item['attr_name'], 'detail' => $value];
+ }
+ }
+ }
+ $find['attrValue']['stock'] = $product['refund_num'];
+
+ $find['content'] = Db::name('store_product_content')->where('product_id', $find['product_id'])->value('content');
+ $find['is_show'] = 0;
+ $find['mer_id'] = $mer_id;
+ $find['temp_id'] = "";
+ $find['give_coupon_ids'] = [];
+ $find['params'] = [];
+ $find['extend'] = [];
+ $find['param_temp_id'] = [];
+ $find['mer_labels'] = [];
+ $find['delivery_way'] = [0 => "2"];
+ $find["guarantee_template_id"] = "";
+ $find['product_type'] = 0;
+ $find['mer_cate_id'] = [0 => 0];
+ $find['is_used'] = 1;
+ $find['status'] = 1;
+ $find['mer_status'] = 1;
+ $find['source_product_id'] = $product['product_id'];
+ $find['slider_image'] = explode(',', $find['slider_image']);
+ unset($find['product_id'], $find['create_time']);
+ $productId = app(ProductRepository::class)->create($find, 0);
+ $data=['order_id'=>$order['order_id'],'order_product_id'=>$order['order_product_id'],
+ 'product_id'=>$productId,'number'=>$product['refund_num'],'order_unique'=>$product['product_sku'],
+ 'price'=> $find['attrValue']['price'],'supplierMerId'=> $order['mer_id'],'mer_id'=>$mer_id
+ ];
+ $this->purchase_record($data);
+ }
+ }
+ }
+
+
+ public function purchase_record($data){
+ $model = new PurchaseRecord();
+ $data = [
+ 'order_id' => $data['order_id'] ?? 0,
+ 'order_product_id' => $data['order_product_id'] ?? 0,
+ 'product_id' => $data['product_id'],
+ 'number' => $data['number'],
+ 'order_unique' => $data['order_unique'] ?? '',
+ 'unique' => $data['unique'],
+ 'price' => $data['price'],
+ 'mer_id' => $data['mer_id'],
+ 'supplier_mer_id' => $data['supplierMerId'],
+ ];
+ $model->save($data);
+ }
+}
From 4a543633e336af98469e2da7d14d579cf0a1462a Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Fri, 17 Nov 2023 11:13:58 +0800
Subject: [PATCH 34/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=A4=9A=E8=A7=84?=
=?UTF-8?q?=E6=A0=BC=E5=90=8C=E6=AD=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/event.php | 2 +-
app/listener/{OrderTask.php => OrderTake.php} | 79 ++++++++++++++-----
2 files changed, 61 insertions(+), 20 deletions(-)
rename app/listener/{OrderTask.php => OrderTake.php} (61%)
diff --git a/app/event.php b/app/event.php
index b6928bde..7ae53a8c 100644
--- a/app/event.php
+++ b/app/event.php
@@ -75,7 +75,7 @@ return [
'refund.after'=>[\app\listener\AfterRefund::class],
'refund.deliver'=>[\app\listener\DeliverRefund::class],
'order.create'=>[\app\listener\OrderCreate::class],
- 'order.task'=>[\app\listener\OrderTask::class],
+ 'order.take'=>[\app\listener\OrderTake::class],
],
'subscribe' => [],
diff --git a/app/listener/OrderTask.php b/app/listener/OrderTake.php
similarity index 61%
rename from app/listener/OrderTask.php
rename to app/listener/OrderTake.php
index ea076675..ad18a354 100644
--- a/app/listener/OrderTask.php
+++ b/app/listener/OrderTake.php
@@ -15,11 +15,12 @@ use crmeb\utils\DingTalk;
use think\facade\Db;
use think\facade\Log;
use app\common\model\store\product\PurchaseRecord;
+use app\common\model\system\Extend;
/**
* 收货后的逻辑
*/
-class OrderTask
+class OrderTake
{
public $totalAmount;
@@ -36,10 +37,9 @@ class OrderTask
$order = $event['order'];
if ($order['source'] == 200 && $order['activity_type'] == 98) {
$product_arr = Db::name('store_order_product')->where('order_id', $order['order_id'])->where('is_refund', 'in', [0, 2])->field('product_id,product_sku,refund_num')->select();
-
foreach ($product_arr as $k => $v) {
- $product_id = $this->import($v, $order);
-
+ $this->import($v, $order);
+
// app(ProductRepository::class)->create($find, 0);
}
// $productId = $this->import($params['order_product_id'], request()->userInfo());
@@ -58,26 +58,67 @@ class OrderTask
Log::error('采购导入商品:商户不存在');
return false;
}
+ /**原始商品数据 */
$find = Db::name('store_product')->where('product_id', $product['product_id'])->find();
if ($find) {
if (!in_array($find['product_type'], [0, 98])) {
Log::error('采购导入商品:不是普通商品');
return false;
}
+ /**查询是否导入过该商品 */
$exist = Db::name('store_product')->where('source_product_id', $product['product_id'])->where('mer_id', $mer_id)->find();
if ($exist) {
$store_product_attr_value = Db::name('store_product_attr_value')->where('product_id', $exist['product_id'])->where('unique', $product['product_sku'])->find();
if ($store_product_attr_value) {
- Log::error('采购导入商品:已经导入过该商品了');
+ Log::error('采购导入商品:已经导入过该规格了');
return false;
}
- $find['attrValue'] = Db::name('store_product_attr_value')->where(['product_id' => $find['product_id']])
+ $attrValue = Db::name('store_product_attr_value')->where(['product_id' => $find['product_id']])
->where('unique', $product['product_sku'])
->field('image,price,cost,ot_price,svip_price,stock,bar_code,weight,volume,detail,sku')
->withAttr('detail', function ($value) {
return empty($value) ? [] : json_decode($value, true);
})
->find();
+ $find['attr'] = [];
+ if ($attrValue['detail']) {
+ foreach ($attrValue['detail'] as $kk => $vv) {
+
+ $attr_values = Db::name('store_product_attr')->where('product_id', $exist['product_id'])->where('attr_name', $kk)
+ ->value('attr_values');
+ if ($attr_values) {
+ $attr_values = explode('-!-', $attr_values);
+ if (!in_array($vv, $attr_values)) {
+ $attr_values[] = $vv;
+ $attr_values = implode('-!-', $attr_values);
+ Db::name('store_product_attr')->where('product_id', $exist['product_id'])->where('attr_name', $kk)->update(['attr_values' => $attr_values]);
+ }
+ } else {
+ $attr_values = $vv;
+
+ Db::name('store_product_attr')->insert(
+ [
+ 'product_id' => $exist['product_id'],
+ 'attr_name' => $kk, 'attr_values' => $attr_values
+ ]
+ );
+ }
+ }
+ }
+ $attrValue['stock'] = $product['refund_num'];
+ $unique = app(ProductRepository::class)->setUnique($exist['product_id'], $attrValue['sku'], 0);
+ $attrValue['unique'] = $unique;
+ $attrValue['detail'] = json_encode($attrValue['detail']);
+ $attrValue['product_id'] = $exist['product_id'];
+ $attrValue['mer_id'] = $mer_id;
+ Db::name('store_product_attr_value')->insert($attrValue);
+ Db::name('store_product')->where('product_id',$exist['product_id'])->update(['stock'=>$product['refund_num']+$exist['stock']]);
+ $data = [
+ 'order_id' => $order['order_id'], 'order_product_id' => $order['product_id'],
+ 'product_id' => $exist['product_id'], 'number' => $product['refund_num'], 'order_unique' => $product['product_sku'],
+ 'price' => $attrValue['price'], 'supplierMerId' => $order['mer_id'], 'mer_id' => $mer_id, 'unique' => $unique
+ ];
+ $this->purchase_record($data);
} else {
$find['attrValue'] = Db::name('store_product_attr_value')->where(['product_id' => $find['product_id']])
@@ -88,15 +129,13 @@ class OrderTask
})
->find();
- $attr = Db::name('store_product_attr')->where('product_id', $find['product_id'])->field('attr_name,attr_values,type')->select();
- foreach ($attr as $item) {
- $attr_values = explode('-!-', $item['attr_values']);
- foreach ($attr_values as $value) {
- if ($value == $find['attrValue']['sku']) {
- $find['attr'][] = ['attr_name' => $item['attr_name'], 'detail' => $value];
- }
+ $find['attr'] = [];
+ if ($find['attrValue']['detail']) {
+ foreach ($find['attrValue']['detail'] as $kk => $vv) {
+ $find['attr'][] = ['attr_name' => $kk, 'detail' => $vv];
}
}
+
$find['attrValue']['stock'] = $product['refund_num'];
$find['content'] = Db::name('store_product_content')->where('product_id', $find['product_id'])->value('content');
@@ -119,17 +158,19 @@ class OrderTask
$find['slider_image'] = explode(',', $find['slider_image']);
unset($find['product_id'], $find['create_time']);
$productId = app(ProductRepository::class)->create($find, 0);
- $data=['order_id'=>$order['order_id'],'order_product_id'=>$order['order_product_id'],
- 'product_id'=>$productId,'number'=>$product['refund_num'],'order_unique'=>$product['product_sku'],
- 'price'=> $find['attrValue']['price'],'supplierMerId'=> $order['mer_id'],'mer_id'=>$mer_id
- ];
+ $data = [
+ 'order_id' => $order['order_id'], 'order_product_id' => $order['product_id'],
+ 'product_id' => $productId, 'number' => $product['refund_num'], 'order_unique' => $product['product_sku'],
+ 'price' => $find['attrValue']['price'], 'supplierMerId' => $order['mer_id'], 'mer_id' => $mer_id
+ ];
$this->purchase_record($data);
}
}
}
- public function purchase_record($data){
+ public function purchase_record($data)
+ {
$model = new PurchaseRecord();
$data = [
'order_id' => $data['order_id'] ?? 0,
@@ -137,7 +178,7 @@ class OrderTask
'product_id' => $data['product_id'],
'number' => $data['number'],
'order_unique' => $data['order_unique'] ?? '',
- 'unique' => $data['unique'],
+ 'unique' => $data['unique'] ?? '',
'price' => $data['price'],
'mer_id' => $data['mer_id'],
'supplier_mer_id' => $data['supplierMerId'],
From 15715e717c88f09a1875378955761e13cc45d539 Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Fri, 17 Nov 2023 13:51:45 +0800
Subject: [PATCH 35/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controller/api/store/merchant/MerchantIntention.php | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/app/controller/api/store/merchant/MerchantIntention.php b/app/controller/api/store/merchant/MerchantIntention.php
index 11f92c99..8b84a2a4 100644
--- a/app/controller/api/store/merchant/MerchantIntention.php
+++ b/app/controller/api/store/merchant/MerchantIntention.php
@@ -203,7 +203,9 @@ class MerchantIntention extends BaseController
'bank_back' => $data['bank_back'] ?? '',
'cardno_front' => $data['cardno_front'] ?? '',
'cardno_back' => $data['cardno_back'] ?? '',
- 'mer_intention_id' => $intentionId
+ 'mer_intention_id' => $intentionId,
+ 'type_id'=>$data['mer_type_id']??''
+
];
$postUrl = env('TASK_WORKER_HOST_URL') . '/adminapi/company/createShopMerchant';
$res = $this->sendMerIntentionApply($sendData, $postUrl);
@@ -297,7 +299,9 @@ class MerchantIntention extends BaseController
'area' => $data['area_id'] ?? '',
'street' => $data['street_id'] ?? '',
'address' => $data['address'] ?? '',
- 'mer_intention_id' => $id
+ 'mer_intention_id' => $id,
+ 'type_id'=>$data['mer_type_id']??''
+
];
$postUrl = env('TASK_WORKER_HOST_URL') . '/adminapi/company/createShopMerchant';
$res = $this->sendMerIntentionApply($sendData, $postUrl);
From 44f915df67e56e33dc32d51a05a25782264f4620 Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Fri, 17 Nov 2023 18:01:25 +0800
Subject: [PATCH 36/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/common/repositories/store/product/ProductRepository.php | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/app/common/repositories/store/product/ProductRepository.php b/app/common/repositories/store/product/ProductRepository.php
index ae45c876..fddaa417 100644
--- a/app/common/repositories/store/product/ProductRepository.php
+++ b/app/common/repositories/store/product/ProductRepository.php
@@ -779,6 +779,12 @@ class ProductRepository extends BaseRepository
}
unset($data['content']);
$data['content'] = $content;
+ // $attr = $this->detailAttr($data['attr']);
+ $attrValue =$data['attrValue'];
+
+ $sku = $this->detailAttrValue($attrValue, null, $data['product_type'], null);
+ $data['sku'] = $sku;
+
return $data;
}
From ee6829fd1883c731e573a68d60d2c0646a1fe0d9 Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Fri, 17 Nov 2023 18:40:35 +0800
Subject: [PATCH 37/37] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controller/api/store/merchant/MerchantIntention.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/controller/api/store/merchant/MerchantIntention.php b/app/controller/api/store/merchant/MerchantIntention.php
index 8b84a2a4..86f321a8 100644
--- a/app/controller/api/store/merchant/MerchantIntention.php
+++ b/app/controller/api/store/merchant/MerchantIntention.php
@@ -204,7 +204,7 @@ class MerchantIntention extends BaseController
'cardno_front' => $data['cardno_front'] ?? '',
'cardno_back' => $data['cardno_back'] ?? '',
'mer_intention_id' => $intentionId,
- 'type_id'=>$data['mer_type_id']??''
+ 'type_id'=>$merInfo['type_id']??''
];
$postUrl = env('TASK_WORKER_HOST_URL') . '/adminapi/company/createShopMerchant';