【TP5】不重复添加数据(案例:专题下的视频管理)

简介: 【TP5】不重复添加数据(案例:专题下的视频管理)

author:咔咔

wechat:fangkangfk

案例:专题添加视频不可重复

image.png

注释写的这么清晰就不需要在解释了

/**
     * author:咔咔
     *
     * 批量给专题添加视频
     */
    public function batchAddVideo()
    {
        $param = $this->request->param();
        if(empty($param)){
            return ajaxReturn(PARAM_ERROR);
        }
        // 已存在的视频
        $existingData  = $this->subjectListModel->existingData($param);
        // 批量添加的视频id
        $addVideoId = $param['ids'];
        // 将批量添加的视频索引与值相等
        foreach($addVideoId as $k=>$v){
            $datas[$v] = $v;
        }
        if(empty($existingData)){
            foreach($datas as $key=>$val){
                $data['vs_id'] = $param['vs_id'];
                $data['vi_id'] = $val;
                $result = $this->subjectListModel->insert($data);
            }
            if($result){
                return ajaxReturn(SUCCESS);
            }
        }
        // 将已将存在的视频索引与值相等
        foreach($existingData as $k=>$v){
            $existencetVideoId[$v] = $v;
        }
        // 移除已经存在的视频id
        foreach($datas as $key => $val){
            if(array_key_exists($key,$existencetVideoId)){
                unset($datas[$key]);
            }
        }
        // 容错当全部数据都存在的时候,datas为空
        if(empty($datas)){
            return ajaxReturn(EXISTENCE);
        }
        foreach($datas as $key=>$val){
            $data['vs_id'] = $param['vs_id'];
            $data['vi_id'] = $val;
            $result = $this->subjectListModel->insert($data);
        }
        if($result){
            return ajaxReturn(SUCCESS);
        }
    }
相关文章
|
人工智能 安全 搜索推荐
浅谈知识的结构与认知(一)
浅谈知识的结构与认知(一)
|
数据采集 中间件 Python
Scrapy爬虫:利用代理服务器爬取热门网站数据
Scrapy爬虫:利用代理服务器爬取热门网站数据
|
11月前
|
前端开发 NoSQL Java
聊聊公众号联动扫码登录功能如何实现
大家好,我是V哥。本文介绍了如何通过微信公众号实现扫码登录功能,包括申请权限、生成二维码、用户授权、获取用户信息、建立会话等步骤。假设你已有一个Java后端应用,并完成了微信开发者平台的配置。文中提供了详细的代码示例,帮助你快速实现这一功能。
485 0
|
存储 应用服务中间件 nginx
CKAD考试实操指南(五)---定制你的舞台:配置实践要点
在这篇 CKAD 考试实操指南文章中将为你介绍如何使用知十平台并结合开源项目 CKAD Exercises 中提供的练习题来练习 CKAD 考试中 Configuration 部分的考试内容。在这个过程中你将掌握如何通过 kubectl 命令行工具操作「ConfigMap」、「Secret」、「SecurityContext」、「ServiceAccount」、「ResourceQuota」等资源,并在实践中加深对知识的理解。
288 0
CKAD考试实操指南(五)---定制你的舞台:配置实践要点
|
人工智能 API 开发者
插件开发最佳实践:以必应(Bing)搜索插件开发为例
插件是Botnow中增强Bot功能的关键工具,可通过添加各类插件如新闻阅读、效率工具等,扩展Bot的知识与技能。本文以开发“必应搜索”插件为例,详细介绍从登录控制台开始,经过创建插件、定义接口、设置认证信息直至在Bot中实际运用插件的全过程。遵循最佳实践,开发者能构建高质量插件,显著提升Bot的服务能力。
284 0
|
安全 应用服务中间件 Linux
windows配置supervisor实现nginx自启
windows配置supervisor实现nginx自启
317 0
|
缓存 网络协议 Java
挑战全网,史上最全Android开发进阶,跳槽复习指南(1),掌握这6大技能体系
挑战全网,史上最全Android开发进阶,跳槽复习指南(1),掌握这6大技能体系
|
存储 中间件 API
fastadmin框架token验证
fastadmin框架token验证
630 0
|
存储 监控 Java
Sentinel 面试题及答案整理,最新面试题
Sentinel 面试题及答案整理,最新面试题
945 0
|
Kubernetes 监控 Cloud Native
云原生场景下月省 10 万元资源成本,这家企业做对了什么
云原生场景下月省 10 万元资源成本,这家企业做对了什么