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/shop/model/user/User.php |   47 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/admin/app/shop/model/user/User.php b/admin/app/shop/model/user/User.php
index 14a3878..7077768 100644
--- a/admin/app/shop/model/user/User.php
+++ b/admin/app/shop/model/user/User.php
@@ -9,6 +9,7 @@
 use app\common\enum\user\grade\ChangeTypeEnum;
 use app\common\enum\user\balanceLog\BalanceLogSceneEnum as SceneEnum;
 use app\shop\model\user\PointsLog as PointsLogModel;
+use app\shop\model\user\ConsumptionLog as ConsumptionLogModel;
 use app\shop\model\plus\agent\User as AgentUserModel;
 /**
  * 用户模型
@@ -93,7 +94,7 @@
         }
         if($is_page){
             // 获取用户列表
-            return $model->alias('user')->with(['grade'])->distinct(true)->field(['user.*','referee.nickName as referee_name,referee.avatarUrl as referee_avatarUrl'])
+            return $model->alias('user')->with(['grade','branch'])->distinct(true)->field(['user.*','referee.nickName as referee_name,referee.avatarUrl as referee_avatarUrl'])
                 ->where('user.is_delete', '=', '0')
                 ->join('user_tag tag', 'user.user_id = tag.user_id','left')
                 ->join('user referee', 'user.referee_id = referee.user_id','left')
@@ -102,7 +103,7 @@
                 ->paginate($params);
         }else{
             // 获取用户列表
-            return $model->alias('user')->with(['grade'])
+            return $model->alias('user')->with(['grade','branch'])
                 ->where('user.is_delete', '=', '0')
                 ->join('user referee', 'user.referee_id = referee.user_id','left')
                 ->order(['user.create_time' => 'desc'])
@@ -203,6 +204,8 @@
             return $this->rechargeToBalance($storeUserName, $data['balance']);
         } elseif ($source == 1) {
             return $this->rechargeToPoints($storeUserName, $data['points']);
+        } elseif ($source == 2) {
+            return $this->rechargeToconCumption($storeUserName, $data['consumption']);
         }
         return false;
     }
@@ -282,6 +285,46 @@
         event('UserGrade', $this['user_id']);
         return true;
     }
+    /**
+     *  用户充值:消费券
+    */
+    private function rechargeToconCumption($storeUserName, $data)
+    {
+        if (!isset($data['value']) || $data['value'] === '' || $data['value'] < 0) {
+            $this->error = '请输入正确的消费券数量';
+            return false;
+        }
+        $consumer_coupon = 0;
+        // 判断充值方式,计算最终消费券
+        if ($data['mode'] === 'inc') {
+            $diffMoney = $this['consumer_coupon'] + $data['value'];
+            $consumer_coupon = $data['value'];
+        } elseif ($data['mode'] === 'dec') {
+            $diffMoney = $this['consumer_coupon'] - $data['value'] <= 0 ? 0 : $this['consumer_coupon'] - $data['value'];
+            $consumer_coupon = -$data['value'];
+        } else {
+            $diffMoney = $data['value'];
+            $consumer_coupon= $data['value'] - $this['consumer_coupon'];
+        }
+        // 更新记录
+        $this->transaction(function () use ($storeUserName, $data, $diffMoney, $consumer_coupon) {
+            $total_expend_money = $this['total_expend_money'] + $consumer_coupon <= 0? 0 : $this['total_expend_money'] + $consumer_coupon;
+            // 更新账户消费券
+            $this->where('user_id', '=', $this['user_id'])->update([
+                'consumer_coupon' => $diffMoney,
+                'total_expend_money' => $total_expend_money
+            ]);
+            // 新增消费券变动记录
+            ConsumptionLogModel::add([
+                'user_id' => $this['user_id'],
+                'value' => $consumer_coupon,
+                'describe' => "后台管理员 [{$storeUserName}] 操作",
+                'remark' => $data['remark'],
+            ]);
+        });
+        event('UserGrade', $this['user_id']);
+        return true;
+    }
 
 
     /**

--
Gitblit v1.9.2