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/controller/plus/business/Business.php |   54 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 43 insertions(+), 11 deletions(-)

diff --git a/admin/app/api/controller/plus/business/Business.php b/admin/app/api/controller/plus/business/Business.php
index 8b4c0ad..2256fe4 100644
--- a/admin/app/api/controller/plus/business/Business.php
+++ b/admin/app/api/controller/plus/business/Business.php
@@ -22,14 +22,15 @@
         $currentUserId = $user ? $user['user_id'] : 0;
         $orderModel = new OrderModel();
         
-        foreach ($list as $key => $value) {
+        foreach ($list as $key => &$value) {
             // 标记是否已购买
             $hasPurchased = $orderModel->checkCardPurchase($currentUserId, $value['business_card_id']);
             $list[$key]['has_purchased'] = $hasPurchased;
             $needDesensitization = $this->needDesensitizeCard($value, $currentUserId);
             $posterType = $needDesensitization ? 'desensitization' : 'business';
             $Qrcode = new Poster($value, $posterType);
-            $data['mp'] = $Qrcode->getImage();
+            $value['mp'] = $Qrcode->getImage();
+            $value['posterType'] = $posterType;
             // 使用封装的方法判断是否需要脱敏
             if ($needDesensitization) {
                 $list[$key] = $this->desensitizeBusinessData($value);
@@ -115,6 +116,12 @@
         if(!(new BusinessModel())->where(['user_id'=>$user['user_id'],'is_default'=>1])->find()){
             $param['is_default'] = 1;
         }
+        if (empty($param['name'])){
+            return $this->renderError('请输入姓名');
+        }
+        if (empty($param['mobile'])){
+            return $this->renderError('输入手机号');
+        }
         if ((new BusinessModel())->add($param)) {
             return $this->renderSuccess('添加成功');
         }
@@ -124,16 +131,32 @@
     /**
      * 名片详情
      * @param $business_card_id
-     * @return array
+     * @return array|\think\response\Json
      * @throws \app\common\exception\BaseException
      * @throws \think\exception\DbException
      */
     public function detail($business_card_id)
     {
-        $data = (new BusinessModel())->where(['business_card_id'=>$business_card_id])->with(['image', 'logoImage'])->find();
+        $data = (new BusinessModel())::detail($business_card_id);
         if ($data) {
-            $Qrcode = new Poster($data);
+            // 获取当前用户信息
+            $currentUser = $this->getUser();
+            $currentUserId = $currentUser ? $currentUser['user_id'] : 0;
+
+            // 使用封装的方法判断是否需要脱敏
+            $needDesensitization = $this->needDesensitizeCard($data, $currentUserId);
+
+            // 生成海报图
+            $posterType = $needDesensitization ? 'desensitization' : 'business';
+            $Qrcode = new Poster($data, $posterType);
             $data['mp'] = $Qrcode->getImage();
+            $imageInfo = getimagesize($data['mp']);
+            $data['posterType'] = $posterType;
+
+            // 如果需要脱敏,对返回数据也进行脱敏处理
+            if ($needDesensitization) {
+                $data = $this->desensitizeBusinessData($data);
+            }
         }
         return $this->renderSuccess('',$data);
     }
@@ -152,7 +175,7 @@
         $model = new BusinessModel();
         $data = $model->getDefault($user_id);
         if(!$data){
-            if($model->get(['user_id' => $user_id])){
+            if($model->where(['user_id' => $user_id])->count()){
                 $data = $model->order('create_time', 'desc')->where(['user_id' => $user_id])->find();
                 $model->editDefault($data['business_card_id']);
                 $data = $model->getDefault($user_id);
@@ -163,10 +186,8 @@
             // 获取当前用户信息
             $currentUser = $this->getUser();
             $currentUserId = $currentUser ? $currentUser['user_id'] : 0;
-            
             // 使用封装的方法判断是否需要脱敏
             $needDesensitization = $this->needDesensitizeCard($data, $currentUserId);
-            
             // 生成海报图
             $posterType = $needDesensitization ? 'desensitization' : 'business';
             $Qrcode = new Poster($data, $posterType);
@@ -242,12 +263,21 @@
             $user = $this->getUser();
             $param['user_id'] = $user['user_id'];
         }
-
+        if (empty($param['name'])){
+            return $this->renderError('请填写姓名');
+        }
+        if (empty($param['mobile'])){
+            return $this->renderError('请填写手机号');
+        }
+        if (empty($param['unit'][0])){
+            return $this->renderError('请至少填写填写公司');
+        }
         $param['unit'] = json_encode($param['unit'], JSON_UNESCAPED_UNICODE);
         $param['duties'] = json_encode($param['duties'], JSON_UNESCAPED_UNICODE);
         $param['address'] = json_encode($param['address'], JSON_UNESCAPED_UNICODE);
         !empty($param['position'])?$param['position'] = json_encode($param['position'], JSON_UNESCAPED_UNICODE):'';
         $param['position'] = $param['duties'];
+
         if ($model->add($param)) {
             return $this->renderSuccess('编辑成功');
         }
@@ -262,7 +292,7 @@
     public function delete()
     {
         $param = request()->param();
-        if((new BusinessModel())->get(['business_card_id'=>$param['business_card_id'],'is_default'=>1])){
+        if((new BusinessModel())->where(['business_card_id'=>$param['business_card_id'],'is_default'=>1])->find()){
             return $this->renderError('当前名片为默认名片,无法删除,可切换默认名片后进行删除');
         }
         $model = (new BusinessModel())->where('business_card_id', $param['business_card_id'])->find();
@@ -282,7 +312,9 @@
         }
         return $this->renderError('删除失败');
     }
-    
+    public function getIlk(){
+        return $this->renderSuccess('',[10=>'个人名片',20=>'企业名片']);
+    }
     /**
      * 获取访客列表
      * @return array

--
Gitblit v1.9.2