From 33f004d1196d056b99a3886de070d429315bac39 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Thu, 11 Dec 2025 18:12:38 +0800
Subject: [PATCH] 将分类改为多选 修复活动报名 实现成为vip会员时根据活动报名信息绑定下级

---
 admin/app/api/model/branch/ActivityUser.php |   71 +++++++++++++++++++++++++++++------
 1 files changed, 58 insertions(+), 13 deletions(-)

diff --git a/admin/app/api/model/branch/ActivityUser.php b/admin/app/api/model/branch/ActivityUser.php
index d0cc402..638d92f 100644
--- a/admin/app/api/model/branch/ActivityUser.php
+++ b/admin/app/api/model/branch/ActivityUser.php
@@ -2,6 +2,7 @@
 
 namespace app\api\model\branch;
 
+use app\api\model\user\User;
 use app\common\enum\order\OrderPayTypeEnum;
 use app\common\model\branch\ActivityUser as ActivityUserModel;
 use app\api\model\branch\Member as MemberModel;
@@ -14,7 +15,8 @@
 use app\common\model\user\BalanceLog as BalanceLogModel;
 use app\common\model\branch\User as BranchUserModel;
 use app\common\model\branch\Setting as BranchSettingModel;
-
+use app\common\model\settings\Region as RegionModel;
+use app\api\model\user\User as UserModel;
 /**
  * 用户模型
  */
@@ -63,7 +65,7 @@
     {
         // 构建查询规则
         $model = $this->alias('auser')
-            ->field('auser.*,user.nickName,user.real_name,user.avatarUrl')
+            ->field('auser.*,user.nickName,auser.real_name,user.avatarUrl')
             ->join('user', 'user.user_id = auser.user_id')
             ->where('auser.is_delete', '=', 0)
             ->where('auser.status', '=', 1)
@@ -96,26 +98,36 @@
     {
         $detail = ActivityModel::detail($params["activity_id"]);
         // 如果用户还没加入连盟并且不是帮朋友报名
-        if (!$params['is_member'] && !$params['is_friend']) {
+        /*if (!$params['is_member'] && !$params['is_friend']) {
             $this->addMember($detail, $params, $user);
-        }
+        }*/
         // 验证数据
         if (!$this->validateData($detail, $params, $user)) {
             return false;
         }
+
         $data = [
             'user_id' => $user['user_id'],
             'order_no' => $this->orderNo(),
-            'activity_id' => $detail['activity_id'],
-            'total_price' => $detail['fee'],
-            'pay_price' => $detail['fee'],
-            'points_num' => $params['points_num'], // 积分抵扣数量
-            'points_money' => $params['points_money'], // 积分抵扣金额
-            'balance' => $params['balance'], // 余额
-            'online_money' => $params['online_money'], // 需在线支付的金额
+            'activity_id' => $detail['activity_id']?:0,
+            'total_price' => $detail['fee']?:0,
+            'pay_price' => $detail['fee']?:0,
+            'points_num' => $params['points_num']?:0, // 积分抵扣数量
+            'points_money' => $params['points_money']?:0, // 积分抵扣金额
+            'balance' => $params['balance']?:0, // 余额
+            'online_money' => $params['online_money']?:0, // 需在线支付的金额
             'status' => $params['online_money'] > 0 ? 0 : 1, //报名状态,如果不需要在线支付则则直接报名成功
-            'pay_type' => $params['pay_type'],
-            'in_radius' => $params['in_radius'],
+            'pay_type' => $params['pay_type']?:0,
+            'in_radius' => $params['in_radius']?:0,
+            'province_id' => $params['province_id']?:0,
+            'city_id' => $params['city_id']?:0,
+            'region_id' => $params['region_id']?:0,
+            'company' => $params['company']?:'',
+            'recommend_name' => $params['recommend_name']?:'',
+            'recommend_mobile' => $params['recommend_mobile']?:'',
+            'real_name' => $params['real_name']?:'',
+            'mobile' => $params['mobile']?:'',
+            'branch_id' => $params['branch_id']?:0,
             'app_id' => self::$app_id,
         ];
         // 如果是帮朋友报名,把用户信息记录下来
@@ -127,6 +139,10 @@
             $data['reg_user_id'] = $user['user_id']; // 记录是谁帮注册的,因为核销的时候会把user_id改为实际报名人的
         }
         $data['trade_no'] = $data['order_no'];
+        $refereeUser=(new UserModel())->where(['real_name'=>$params['recommend_name'],'mobile'=>$params['recommend_mobile']])->find();
+        if ($refereeUser){
+            $data['referee_id']=$refereeUser['user_id'];
+        }
         $this->save($data);
         // 如果不需要在线支付
         if ($data['online_money'] == 0) {
@@ -134,7 +150,36 @@
         }
         return $this;
     }
+    public function getRegistrationInformation($user_id,$activity_id=0)
+    {
+        $list=$this->where('user_id', '=', $user_id)
+            ->order('create_time', 'desc')->find();
+        $data=[];
+        if ($list){
+            $branch=(new Branch())->detail($list['branch_id']);
+            $data=[
+                'province_id'=>$list['province_id'],
+                'city_id'=>$list['city_id'],
+                'region_id'=>$list['region_id'],
+                'recommend_name'=>$list['recommend_name'],
+                'recommend_mobile'=>$list['recommend_mobile'],
+                'real_name'=>$list['real_name'],
+                'mobile'=>$list['mobile'],
+                'branch_id'=>$list['branch_id'],
+                'company'=>$list['company'],
+                'branch_name'=>$branch?$branch['name']:'',
+                'region'=>RegionModel::getNameById($list['province_id']).','.RegionModel::getNameById($list['city_id']).','.RegionModel::getNameById($list['region_id']),
 
+            ];
+        }
+        if($activity_id){
+            $activity=(new ActivityModel())->find($activity_id);
+            if ($activity){
+                $data['activity_number']=(new ActivityModel())->where(['branch_id'=>$activity['branch_id'],'category_id'=>$activity['category_id']])->count();
+            }
+        }
+        return $data;
+    }
     public function addMember($activity, $params, $user)
     {
         $data = [

--
Gitblit v1.9.2