diff --git a/app/admin/view/groupbuy/group_buy/lists.html b/app/admin/view/groupbuy/group_buy/lists.html
index 35db7a45..275c7e60 100644
--- a/app/admin/view/groupbuy/group_buy/lists.html
+++ b/app/admin/view/groupbuy/group_buy/lists.html
@@ -81,28 +81,28 @@
diff --git a/app/api/controller/Order.php b/app/api/controller/Order.php
index 3125a0f6..0a0c78dd 100755
--- a/app/api/controller/Order.php
+++ b/app/api/controller/Order.php
@@ -36,11 +36,11 @@ class Order extends Api
$post['user_id'] = $this->user_id;
$post['client'] = $this->client;
(new OrderValidate())->goCheck('add', $post);
- if(isset($post['order_type'])){
- if($post['order_type'] == 4){
- return JsonServer::error("活动正在预热,敬请等待");
- }
- }
+// if(isset($post['order_type'])){
+// if($post['order_type'] == 4){
+// return JsonServer::error("活动正在预热,敬请等待");
+// }
+// }
$order = OrderLogic::add($post);
if (false === $order) {
return JsonServer::error(OrderLogic::getError());
diff --git a/app/api/logic/DistributionLogic.php b/app/api/logic/DistributionLogic.php
index 78740403..9c7869a1 100755
--- a/app/api/logic/DistributionLogic.php
+++ b/app/api/logic/DistributionLogic.php
@@ -115,7 +115,7 @@ class DistributionLogic extends Logic
// 'cost_card' => $post['cost_card'],
'partner_id' => $post['partner_id'],
'store_id' => $post['store_id'],
- 'own_city' => $post['own_city'],
+ 'own_city' => $post['own_city'] ?? '',
];
\app\common\logic\DistributionLogic::add($post['user_id']);
diff --git a/app/api/logic/GoodsLogic.php b/app/api/logic/GoodsLogic.php
index f80af779..1f1ec1be 100755
--- a/app/api/logic/GoodsLogic.php
+++ b/app/api/logic/GoodsLogic.php
@@ -111,7 +111,6 @@ class GoodsLogic extends Logic
// 转数组
$goodsDetailArr = $goodsDetail->toArray();
-
$goodsDetailArr['poster'] = !empty($goodsDetailArr['poster']) ? UrlServer::getFileUrl($goodsDetailArr['poster']) : '';
foreach ($goodsDetailArr['goods_item'] as &$valItem){
$valItem['limited_num'] = 0;
@@ -1130,17 +1129,13 @@ class GoodsLogic extends Logic
}
foreach($GroupbuyGoods as $item) {
- // 获取该商品的秒杀信息
- $GroupbuyGoods_info = GroupbuyGoods::where([
- 'goods_id' => $goods['id'],
- ])->column('goods_id,item_id,activity_price,stock,limited_num', 'item_id');
-
+ // 获取该商品的秒杀信息
+ $GroupbuyGoods_info = GroupbuyGoods::where([
+ 'goods_id' => $goods['id'],
+ ])->column('goods_id,item_id,activity_price,stock,limited_num', 'item_id');
}
-
-
- // 确定是抢购商品
- // 先将商品市场价换成原SKU最小价
+ // 确定是抢购商品 先将商品市场价换成原SKU最小价
$goods['market_price'] = $goods['min_price'];
// 替换活动价
foreach($goods['goods_item'] as &$item) {
@@ -1159,15 +1154,29 @@ class GoodsLogic extends Logic
}
// 如果当前用户参与了抢购的活动(则不允许再次抢购)
- $in_activity = Order::where(['user_id' => $userId, 'order_type' => 4])->where('order_status', '<', 4)->find();
+// $in_activity = Order::where(['user_id' => $userId, 'order_type' => 4])->where('order_status', '<', 4)->find();
+//
+// $goods['activity'] = [
+// 'type' => 4,
+// 'type_desc' => '抢购商品',
+// 'in_groupbuy_activity' => (bool)$in_activity,
+// 'msg' => '您已参与过本次活动,无法再次参与!'
+// ];
+
+ // 2024-11-29 更改规则:活动中的每件商品用户都能购买,但是只能买一件
+ $in_activity = Order::alias('a')
+ ->join('order_goods og', 'a.id = og.order_id')
+ ->where(['a.user_id' => $userId, 'a.order_type' => 4, 'og.goods_id' => $goods['id']])
+ ->where('a.order_status', '<', 4)
+ ->find();
$goods['activity'] = [
'type' => 4,
'type_desc' => '抢购商品',
- 'in_groupbuy_activity' => (bool)$in_activity,
- 'msg' => '您已参与过本次活动,无法再次参与!'
+ 'in_groupbuy_activity' => !empty($in_activity),
+ 'msg' => '您已购买过此商品!'
];
- return $goods;
+ return $goods;
}
}
diff --git a/app/api/logic/GroupBuyLogic.php b/app/api/logic/GroupBuyLogic.php
index 1743f27c..4de1b8fd 100644
--- a/app/api/logic/GroupBuyLogic.php
+++ b/app/api/logic/GroupBuyLogic.php
@@ -54,9 +54,10 @@ class GroupBuyLogic extends Logic
$v['value'] = strtotime($v['value']);
}
- if ($v['name'] == 'service') {
+ if ($v['name'] == 'service' && $v['value']) {
$v['value'] = explode(',', $v['value']);
}
+
$config[$v['name']] = $v['value'];
}
}
diff --git a/app/api/logic/OrderLogic.php b/app/api/logic/OrderLogic.php
index 633c6486..bdf8e1b8 100755
--- a/app/api/logic/OrderLogic.php
+++ b/app/api/logic/OrderLogic.php
@@ -120,22 +120,32 @@ class OrderLogic extends Logic
Db::startTrans();
try {
- if ($post['order_type'] == 4) {
- $in_activity = Order::where(['user_id' => $post['user_id'], 'order_type' => 4])->where('order_status', '<', 4)->find();
- if ($in_activity) {
- throw new Exception('每位用户只能限抢一件商品');
- }
+ if ($post['order_type'] == OrderEnum::GROUP_BUY) {
+// $in_activity = Order::where(['user_id' => $post['user_id'], 'order_type' => 4])->where('order_status', '<', 4)->find();
+// if ($in_activity) {
+// throw new Exception('每位用户只能限抢一件商品');
+// }
- foreach ($goods as $activ) {
- $isOrder = Db::name('order')->where([
- 'activity_sn' => $activ['activity_sn'],
- 'user_id' => $post['user_id']
- ])
- ->where('order_status', '<>', 4)
- ->find();
- if($isOrder){
- throw new Exception('您已抢购过此商品');
+ // 2024-11-29 更改规则:活动中的每件商品用户都能购买,但是只能买一件
+ foreach ($goods as $v) {
+ $in_activity = Order::alias('a')
+ ->join('order_goods og', 'a.id = og.order_id')
+ ->where(['a.user_id' => $post['user_id'], 'a.order_type' => 4, 'og.goods_id' => $v['goods_id']])
+ ->where('a.order_status', '<', 4)
+ ->find();
+
+ if ($in_activity) {
+ throw new Exception('您已购买过此商品');
}
+// $isOrder = Db::name('order')->where([
+// 'activity_sn' => $activ['activity_sn'],
+// 'user_id' => $post['user_id']
+// ])
+// ->where('order_status', '<>', 4)
+// ->find();
+// if($isOrder){
+// throw new Exception('您已抢购过此商品');
+// }
}
}
diff --git a/app/common/model/order/Order.php b/app/common/model/order/Order.php
index 19ff8b90..291ac586 100755
--- a/app/common/model/order/Order.php
+++ b/app/common/model/order/Order.php
@@ -315,9 +315,9 @@ class Order extends Models
return $btn;
}
- if(($data['pay_status'] == PayEnum::ISPAID && $data['order_type'] == '4') || ($data['pay_status'] == PayEnum::ISPAID && $data['order_type'] == '抢购订单')){
- return $btn;
- }
+// if(($data['pay_status'] == PayEnum::ISPAID && $data['order_type'] == '4') || ($data['pay_status'] == PayEnum::ISPAID && $data['order_type'] == '抢购订单')){
+// return $btn;
+// }
if (($data['order_status'] == OrderEnum::ORDER_STATUS_NO_PAID && $data['pay_status'] == PayEnum::UNPAID)
|| ($data['pay_status'] == PayEnum::ISPAID && $data['order_status'] == OrderEnum::ORDER_STATUS_DELIVERY)) {