From ca425b889f3c1b5847ffc26a0229307f7f8ef43e Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Tue, 09 Dec 2025 16:11:31 +0800
Subject: [PATCH] 添加消费券 商户端添加页面diy
---
admin/app/common/model/user/User.php | 50 ++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 48 insertions(+), 2 deletions(-)
diff --git a/admin/app/common/model/user/User.php b/admin/app/common/model/user/User.php
index b92fa89..e7b3d2d 100644
--- a/admin/app/common/model/user/User.php
+++ b/admin/app/common/model/user/User.php
@@ -13,6 +13,7 @@
use app\common\model\user\User as UserModel;
use think\facade\Db; // by lyzflash
use app\common\model\plus\bonus\User as BonusUserModel;
+use app\common\model\user\ConsumptionLog as ConsumptionLogModel;
/**
* 用户模型
*/
@@ -155,6 +156,20 @@
}
return true;
}
+ /**
+ * 累积用户的可用消费券数量 (批量)
+ */
+ public function onBatchIncConsumption($data)
+ {
+ foreach ($data as $userId => $expendPoints) {
+ $this->where(['user_id' => $userId])
+ ->inc('consumer_coupon', $expendPoints)
+ ->inc('total_expend_money', $expendPoints)
+ ->update();
+ event('UserGrade', $this['user_id']);
+ }
+ return true;
+ }
/**
* 累积用户的可用积分
@@ -174,6 +189,31 @@
// 用户总积分
if ($points > 0) {
$data['total_points'] = $this['total_points'] + $points;
+ }
+ $this->where('user_id', '=', $this['user_id'])->update($data);
+ if($upgrade) {
+ event('UserGrade', $this['user_id']);
+ }
+ return true;
+ }
+ /**
+ * 累积用户的可用消费券
+ */
+ public function setIncConsumption($consumption, $describe, $decConsumption = 0, $upgrade = true)
+ {
+ // 新增消费券变动明细
+ ConsumptionLogModel::add([
+ 'user_id' => $this['user_id'],
+ 'value' => $consumption,
+ 'describe' => $describe,
+ 'app_id' => $this['app_id'],
+ ]);
+
+ // 更新用户可用消费券
+ $data['consumer_coupon'] = ($this['consumer_coupon'] + $consumption + $decConsumption <= 0) ? 0 : $this['consumer_coupon'] + $consumption + $decConsumption;
+ // 用户总消费券
+ if ($consumption > 0) {
+ $data['total_expend_money'] = $this['total_expend_money'] + $consumption;
}
$this->where('user_id', '=', $this['user_id'])->update($data);
if($upgrade) {
@@ -271,9 +311,15 @@
{
$user= self::detail($user_id);
$purchase_count=$user['purchase_count']+1;
- if ($purchase_count>11){
- return false;
+ if ($purchase_count==1&&$user['referee_id']){
+ $referee= self::detail($user['referee_id']);
+ if ($referee){
+ $referee->setIncConsumption(10, '直推首单礼包');
+ }
}
+ /*if ($purchase_count>11){
+ return false;
+ }*/
self::where('user_id',$user_id)->update([
'purchase_count'=>$purchase_count
]);
--
Gitblit v1.9.2