From abc7edc3c8ad59ff213c85413d0d6a10d7a0b6f7 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Wed, 17 Dec 2025 18:03:09 +0800
Subject: [PATCH] 1.	发布供需消耗连盟币,连盟币数量在后台独立设置 2.	小程序供需个人中心可自由切换身份 3.	增加私信系统 4.	增加评论系统,用户可在发布者详情页进行评论操作,评论获得的连盟币可在后台设置 5.	增加发布者的等级,以好评个数为条件进行升级,小程序端会显示该等级的图标,如没有等级则不会显示图标 6.	增加设置消耗连盟币可以解锁、查看发布的信息,费用可在后台设置 7.	小程序供需大厅界面优化,以及增加了推荐栏目,该栏目按发布的分类相似进行匹配,比如A用户发布了 互联网 分类的需求,则会优先推荐匹配互联网分类的供应需求给他。

---
 admin/app/branch/model/activity/Activity.php |   76 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 74 insertions(+), 2 deletions(-)

diff --git a/admin/app/branch/model/activity/Activity.php b/admin/app/branch/model/activity/Activity.php
index b9267f6..67740e5 100644
--- a/admin/app/branch/model/activity/Activity.php
+++ b/admin/app/branch/model/activity/Activity.php
@@ -3,6 +3,7 @@
 namespace app\branch\model\activity;
 
 use app\common\model\branch\Activity as ActivityModel;
+use app\common\model\branch\ActivityProductPrice as ActivityProductPriceModel;
 
 /**
  * 活动模型
@@ -27,6 +28,8 @@
      */
     public function add($data, $branch_id)
     {
+        $model = new ActivityModel();
+        $product = new ActivityProductPriceModel();
         $data['app_id'] = self::$app_id;
         $data['branch_id'] = $branch_id;
         //报名时间
@@ -39,7 +42,39 @@
         $coordinate = explode(',', $data['coordinate']);
         $data['latitude'] = $coordinate[0];
         $data['longitude'] = $coordinate[1];
-        return $this->save($data);
+        $product_list = $data['product_list']; // 促销商品
+        $model->startTrans();
+        try {
+            $res = $model->save($data);
+            if(!$res){
+                $this->rollback();
+                $this->error = '活动数据保存出错';
+                return false;
+            }
+            if ($product_list) {
+                $activity_id = $model->activity_id;
+                foreach ($product_list as &$item){
+                    $item['app_id'] = $data['app_id'];
+                    $item['shop_supplier_id'] = $data['visit_supplier_id'];
+                    $item['activity_id'] = $activity_id;
+                }
+                unset($item);
+                $res1 = $product->saveAll($product_list);
+                if(!$res1){
+                    $this->rollback();
+                    $this->error = '促销商品保存出错';
+                    return false;
+                }
+            }
+            // 提交事务
+            $this->commit();
+           return true;
+        } catch (\Exception $e) {
+            // 回滚事务
+            $this->rollback();
+            $this->error = $e->getMessage();
+           return false;
+        }
     }
 
     /**
@@ -47,6 +82,8 @@
      */
     public function edit($data)
     {
+        $model = new ActivityModel();
+        $product = new ActivityProductPriceModel();
         //报名时间
         $data['register_start_time'] = strtotime($data['reg_date'][0]);
         $data['register_end_time'] = strtotime($data['reg_date'][1]);
@@ -57,7 +94,42 @@
         $coordinate = explode(',', $data['coordinate']);
         $data['latitude'] = $coordinate[0];
         $data['longitude'] = $coordinate[1];
-        return $this->save($data);
+        $product_list = $data['product_list']; // 促销商品
+        unset($data['create_time'], $data['update_time']);
+        $model->startTrans();
+        try {
+            $res = $model->update($data, ['activity_id' => $data['activity_id']]);
+            if(!$res){
+                $this->rollback();
+                $this->error = '活动数据保存出错';
+                return false;
+            }
+            // 先软删除原有的促销商品
+            $product->where('activity_id', '=', $data['activity_id'])->update(['is_delete' => 1]);
+            if ($product_list) {
+                foreach ($product_list as $key => &$item){
+                    $item['app_id'] = $data['app_id'];
+                    $item['shop_supplier_id'] = $data['visit_supplier_id'];
+                    $item['activity_id'] = $data['activity_id'];
+                    $item['is_delete'] = 0;
+                }
+                unset($item);
+                $res1 = $product->saveAll($product_list);
+                if(!$res1){
+                    $this->rollback();
+                    $this->error = '商品数据保存出错';
+                    return false;
+                }
+            }
+            // 提交事务
+            $this->commit();
+           return true;
+        } catch (\Exception $e) {
+            // 回滚事务
+            $this->rollback();
+            $this->error = $e->getMessage();
+           return false;
+        }
     }
 
     /**

--
Gitblit v1.9.2