quanwei
2025-11-11 0d04d60f456b1902c1e27b9586652649df3963d4
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);
@@ -124,16 +125,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 +169,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 +180,8 @@
            // 获取当前用户信息
            $currentUser = $this->getUser();
            $currentUserId = $currentUser ? $currentUser['user_id'] : 0;
            // 使用封装的方法判断是否需要脱敏
            $needDesensitization = $this->needDesensitizeCard($data, $currentUserId);
            // 生成海报图
            $posterType = $needDesensitization ? 'desensitization' : 'business';
            $Qrcode = new Poster($data, $posterType);
@@ -262,7 +277,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 +297,9 @@
        }
        return $this->renderError('删除失败');
    }
    public function getIlk(){
        return $this->renderSuccess('',[10=>'个人名片',20=>'企业名片']);
    }
    /**
     * 获取访客列表
     * @return array