From 4e0e36178d82ed486d8cec2c8f52ca96d715cc12 Mon Sep 17 00:00:00 2001
From: liyaozhi <lzhflash@163.com>
Date: Thu, 30 Oct 2025 19:16:05 +0800
Subject: [PATCH] 1、活动增加促销商品(完成后端) 2、修复小程序端活动相册下载不了的问题; 3、修复小程序端活动详情定位问题; 4、修复小程序端报名时免费的也弹出支付弹窗的问题; 5、修复分会后台活动核销码下载问题。
---
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..67123b5 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\ActivityProduct as ActivityProductModel;
/**
* 活动模型
@@ -27,6 +28,8 @@
*/
public function add($data, $branch_id)
{
+ $model = new ActivityModel();
+ $product = new ActivityProductModel();
$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 ActivityProductModel();
//报名时间
$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