From df60073f4fb06ea2d16984635e0714bae8a1f8e9 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Mon, 22 Dec 2025 18:03:35 +0800
Subject: [PATCH] 1.在总后台首页装修增加了活动专区和智能匹配 模块 2.目前活动专区获取的是发布需求最新的数据,智能匹配是用户没登录前也是获取发布需求最新数据,登录后会根据用户发布的需求,通过分类匹配到对应的数据 3.修复缴纳保证金报错 4.修复发布需求报错

---
 admin/app/api/service/order/paysuccess/type/BusinessCardPaySuccessService.php |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 53 insertions(+), 2 deletions(-)

diff --git a/admin/app/api/service/order/paysuccess/type/BusinessCardPaySuccessService.php b/admin/app/api/service/order/paysuccess/type/BusinessCardPaySuccessService.php
index 4cfafb1..1aeb2a4 100644
--- a/admin/app/api/service/order/paysuccess/type/BusinessCardPaySuccessService.php
+++ b/admin/app/api/service/order/paysuccess/type/BusinessCardPaySuccessService.php
@@ -8,6 +8,9 @@
 use app\common\enum\user\balanceLog\BalanceLogSceneEnum;
 use app\common\model\user\BalanceLog as BalanceLogModel;
 use app\common\service\BaseService;
+use app\common\model\plus\business\Business as BusinessModel;
+use app\common\model\plus\business\Setting as SettingModel;
+use app\api\model\user\PointsLog as PointsLogModel;
 
 /**
  * 名片订单支付成功后的回调
@@ -56,14 +59,28 @@
                 return false;
             }
         }
+        // 验证余额支付时用户余额是否满足
+        if ($payType == OrderPayTypeEnum::POINTS) {
+            if ($this->user['points'] < $this->model['pay_price']) {
+                $this->error = '用户联盟币不足,无法使用联盟币支付';
+                return false;
+            }
+        }
         // 事务处理
         $this->model->transaction(function () use ($payType, $payData) {
             // 更新订单状态
             $this->updateOrderInfo($payType, $payData);
-            // 累积用户总消费金额
-            $this->user->setIncPayMoney($this->model['pay_price']);
+            if ($payType != OrderPayTypeEnum::POINTS) {
+                // 累积用户总消费金额
+                $this->user->setIncPayMoney($this->model['pay_price']);
+            }
+
             // 记录订单支付信息
             $this->updatePayInfo($payType);
+            // 如果是置顶订单,更新名片置顶状态
+            if ($this->model['order_source'] == 20) {
+                $this->updateBusinessCardTopStatus();
+            }
         });
         return true;
     }
@@ -100,6 +117,40 @@
                 'user_id' => $this->user['user_id'],
                 'money' => -$this->model['pay_price'],
             ], ['order_no' => $this->model['order_no']]);
+        }elseif ($payType == OrderPayTypeEnum::POINTS && $this->model['pay_price'] > 0) {
+            // 更新用户联盟币
+            $this->user->where('user_id', '=', $this->user['user_id'])
+                ->dec('points', $this->model['pay_price'])
+                ->update();
+            $describe=$this->model['order_source'] == 20?'用户购买名片置顶服务':'用户购买名片服务';
+            PointsLogModel::add([
+                'user_id' => $this->user['user_id'],
+                'value' => $this->model['pay_price'],
+                'describe' =>$describe." 订单号:{$this->model['order_no']}",
+                'remark' => '',
+            ]);
+        }
+    }
+    
+    /**
+     * 更新名片置顶状态
+     */
+    private function updateBusinessCardTopStatus()
+    {
+        // 获取置顶设置
+        $setting = SettingModel::getItem('basic');
+        $topDays = isset($setting['top_days']) ? $setting['top_days'] : 7; // 默认7天
+        
+        // 计算置顶到期时间
+        $topTime = time() + ($topDays * 86400);
+        
+        // 更新名片置顶状态
+        $businessCard = BusinessModel::detail($this->model['business_card_id']);
+        if ($businessCard) {
+            $businessCard->save([
+                'is_top' => 1,
+                'top_time' => $topTime
+            ]);
         }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.2