From 73b874c72ad55eb9eef21c36160ac0de58f0189e Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Thu, 05 Feb 2026 10:30:43 +0800
Subject: [PATCH] 优化名片
---
admin/app/api/service/order/paysuccess/type/BusinessCardPaySuccessService.php | 63 ++++++++++++++++++++++++++++++-
1 files changed, 61 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..f4acb77 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,48 @@
'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
+ ]);
+ }
+ }
+ /**
+ * 返回shop_supplier_id
+ * $pay_status 兼容支付宝支付
+ */
+ public function isExistSupplier()
+ {
+ return 0;
+ }
}
\ No newline at end of file
--
Gitblit v1.9.2