二十、线索关联市场活动(二):关联

news2024/10/7 3:18:50

功能需求

用户在线索明细页面,点击"关联市场活动"按钮,弹出线索关联市场活动的模态窗口;

用户在线索关联市场活动的模态窗口,输入搜索条件,每次键盘弹起,根据名称模糊查询市场活动,把所有符合条件的市场活动显示到列表中;

用户选择要关联的市场活动,点击"关联"按钮,完成线索关联市场活动的功能.

         *每次至少关联一个市场活动

         *同一个市场活动只能跟同一个线索关联一次

         *关联成功之后,关闭模态窗口,刷新已经关联过的市场活动列表

         *关联失败,提示信息,模态窗口不关闭,已经关联过的市场活动列表也不刷新

流程图1关联

 流程图2关联后查询

 代码实现

1.ClueActivityRelationMapper

①ClueActivityRelationMapper

 /**
     * 保存 线索关联市场活动
     */
    int insertCreateClueActivityRelationByList(List<ClueActivityRelation> clueActivityRelationList);

②ClueActivityRelationMapper映射文件

通过集合的一个个ClueActivityRelation对象来添加

    <insert id="insertCreateClueActivityRelationByList">
        insert into tbl_clue_activity_relation(id,clue_id,activity_id)
        values
        <foreach collection="list" item="obj" separator=",">
            (#{obj.id},#{obj.clueId},#{obj.activityId})
        </foreach>
    </insert>

2.ClueActivityRelationService

/**
	 * 保存 线索关联市场活动
	 */
	int saveCreateClueActivityRelationByList(List<ClueActivityRelation> clueActivityRelationList);
	@Autowired
	private ClueActivityRelationMapper clueActivityRelationMapper;
	@Override
	public int saveCreateClueActivityRelationByList(List<ClueActivityRelation> clueActivityRelationList) {
		return clueActivityRelationMapper.insertCreateClueActivityRelationByList(clueActivityRelationList);
	}

3.ClueController

/**
	 * 关联市场活动2:保存--查询
	 */
	@RequestMapping("/workbench/clue/saveBound.do")
	public @ResponseBody
	Object saveBound(String[] activityId, String clueId) {
		// 封装参数
		ClueActivityRelation clueActivityRelation = null;
		List<ClueActivityRelation> clueActivityRelationList = new ArrayList<>();
		for (String actId:activityId) {
			clueActivityRelation = new ClueActivityRelation();
			clueActivityRelation.setId(UUIDUtils.getUUID());
			clueActivityRelation.setActivityId(actId);
			clueActivityRelation.setClueId(clueId);
			clueActivityRelationList.add(clueActivityRelation);
		}
		// 调用service
		ReturnObject returnObject = new ReturnObject();
		try {
			int ret = clueActivityRelationService.saveCreateClueActivityRelationByList(clueActivityRelationList);
			if (ret>0){
				// 增加成功
				List<Activity> activityList = activityService.queryActivitiesByids(activityId);
				returnObject.setCode(Contants.RETURN_OBJECT_CODE_SUCCESS);
				returnObject.setRetDate(activityList);
			}else {
				// 失败
				returnObject.setCode(Contants.RETURN_OBJECT_CODE_FAIL);
				returnObject.setMessage("系统繁忙,稍后再试");
			}
		} catch (Exception e) {
			e.printStackTrace();
			// 失败
			returnObject.setCode(Contants.RETURN_OBJECT_CODE_FAIL);
			returnObject.setMessage("系统繁忙,稍后再试");
		}

		return returnObject;
	}

4.前端detail.jsp

1.给“关联”按钮添加单击事件

  // 给全选按钮添加事件实现全选(全选按钮在线索数据被查出来之前已经生成了,所以直接给固有元素全选按钮添加事件即可)
            $("#checkAll").click(function () {
                // 如果全选按钮选中,则列表中所有按钮都选中(操作tBody下面的所有子标签input,设置为当前(this)全选按钮的状态)
                $("#tBody input[type='checkbox']").prop("checked", this.checked);
            });

            // 当线索标签不是全选时取消全选按钮
            $("#tBody").on("click", "input[type='checkbox']", function () {
                // 设置全选标签状态,如果当前所有标签数和选中标签数相等,则全选,否则不全选
                $("#checkAll").prop("checked",
                    $("#tBody input[type='checkbox']").size() == $("#tBody input[type='checkbox']:checked").size());
            });

            // 3 点击关联
            $("#saveBoundBtn").click(function () {
                // 收集参数
                // 获取所有选中的checkbox
                var checkids = $("#tBody input[type='checkbox']:checked");
                var clueId = '${clue.id}';
                // 表单验证
                if (checkids.size() == 0) {
                    alert("输入要关联的市场活动");
                    return;
                }
                // 拼接参数
                var ids = "";
                $.each(checkids, function () {// activityId=xxxx&activityId=xxxx&....&activityId=xxxx&
                    ids += "activityId=" + this.value + "&";
                });
                ids += "clueId=" + clueId;
                // 发送请求
                $.ajax({
                    url: 'workbench/clue/saveBound.do',
                    data: ids,
                    type: 'post',
                    dataType: 'json',
                    success: function (data) {
                        if (data.code == "1") {
                            // 成功
                            $("#boundModal").modal("hide");
                            var htmlStr = "";
                            $.each(data.retDate, function (index, obj) {
                                htmlStr += "<tr id=\"tr_" + obj.id + "\">";
                                htmlStr += "<td>" + obj.name + "</td>";
                                htmlStr += "<td>" + obj.startDate + "</td>";
                                htmlStr += "<td>" + obj.endDate + "</td>";
                                htmlStr += "<td>" + obj.owner + "</td>";
                                htmlStr += "<td><a href=\"javascript:void(0);\" activityId=\"" + obj.id + "\"  style=\"text-decoration: none;\"><span class=\"glyphicon glyphicon-remove\"></span>解除关联</a></td>";
                                htmlStr += "</tr>";
                            });
                            $("#relationTBody").append(htmlStr);
                        } else {
                            alert(data.message);
                        }
                    }
                });

            });

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/463789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电销CRM客户关系管理系统开发12大核心功能

电销CRM管理系统软件是一款专门针对电销行业开发的客户关系管理软件&#xff0c;它能够帮助企业实现对顾客信息的可视化&#xff0c;智能化&#xff0c;自动化管理&#xff0c;提高电销效率和客户满意度。电销行业在传统互联网营销&#xff0c;新媒体营销&#xff0c;短视频营销…

PINNs与DeepXDE:加速物理计算模型

《AIScience系列&#xff08;一&#xff09;&#xff1a;飞桨加速CFD&#xff08;计算流体力学&#xff09;原理与实践》 https://baijiahao.baidu.com/s?id1728002499252273827&wfrspider&forpc 前言 AIScience专栏由百度飞桨科学计算团队出品&#xff0c;给大家带来…

dubbogo中将kubernetes作为注册中心 -- 阅读官方文档

Kubernetes服务发现模型 为了明确 K8s 在服务接入管理提供的解决方案&#xff0c;我们以 kube-apiserver 提供的 API(HTTPS) 服务为例。K8s 集群为该服务分配了一个集群内有效的 ClusterIP &#xff0c;并通过 CoreDNS 为其分配了唯一的域名 kubernetes 。如果集群内的 Pod 需…

不用先存盘直接显示附件内容

大家好&#xff0c;才是真的好。 有些需求总是很小众&#xff0c;但是还是被人需要。 Notes从来可以满足这种需求。 其实使用Notes客户机可以直接打开嵌入到文档中的附件&#xff0c;例如Txt文本、Word或PDF附件等。 不过有人提出&#xff0c;能否直接从Notes文档中的附件读…

CDGP|数据监管越来越严,数据治理发展何去何从?

尽管数据监管越来越严格&#xff0c;但仍然存在许多机会。事实上&#xff0c;数据监管的加强可能会促进金融科技行业更好地运用数据&#xff0c;激发金融科技行业更多的创新和合作,创造更多的价值和机会。 推动金融机构重视数据安全和隐私保护 促使他们采取更严格的安全措施&a…

尚硅谷大数据技术Spark教程-笔记05【SparkCore(核心编程,累加器、广播变量)】

视频地址&#xff1a;尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01【SparkCore&#xff08;概述、快速上手、运行环境、运行架构&#xff09;】尚硅谷大数据技术Spark教程-笔记02【SparkCore&#xff08;核心编程&#xff0c;RDD-核…

系统日志管理审核

系统日志管理 系统日志记录协议 &#xff08;syslog&#xff09; 旨在标准化网络设备用于与日志服务器通信的消息格式。网络上的路由器、交换机、防火墙和 Unix/Linux 服务器等许多设备都支持它&#xff0c;从而更轻松地管理这些设备生成的日志。系统日志监控和管理对于每个组…

基于GPT-4的 IDEA 神仙插件,无需魔法,亲测好用!

近日&#xff0c;Intellij IDEA的插件商店&#xff0c;悄然上线了一个新的插件——Bito&#xff0c;据说可以基于GPT-4和ChatGPT来写代码。短短几天&#xff0c;已经有50多K的下载量了。 我帮大家试用了一下&#xff0c;亲测好用&#xff01; 根据插件介绍显示&#xff0c;Bito…

《面向基于人工智能的学习健康系统,使用心电图进行人群水平的死亡率预测》阅读笔记

目录 一、摘要 二、十个问题 Q1论文试图解决什么问题&#xff1f; Q2这是否是一个新的问题&#xff1f; Q3这篇文章要验证一个什么科学假设&#xff1f; Q4有哪些相关研究&#xff1f;如何归类&#xff1f;谁是这一课题在领域内值得关注的研究员&#xff1f; Q5论文中提到…

Zynq-7000、国产zynq-7000的GPIO控制(三)

本文主要对在Linux下使用zynq-7000或者FMQL45T900控制MIO/EMIO 首先内核配置项 如下&#xff0c;这个不用太多关注&#xff0c;一般都是默认打开的 CONFIG_GPIO_SYSFSy CONFIG_SYSVIPCy CONFIG_GPIO_ZYNQy两者的控制都是流程都是一样的&#xff0c;在细节上又区别 首先都在…

第一章 安装Unity

使用Unity开发游戏的话&#xff0c;首先要安装Unity Hub和Unity Editor两个软件。大家可以去官方地址下载&#xff1a;https://unity.cn/releases/full/2020 &#xff08;这里我们选择的是2020版本&#xff09; Unity Hub 是安装 Unity Editor、创建项目、管理帐户和许可证的主…

mall-swarm微服务商城系统

mall-swarm是一套微服务商城系统&#xff0c;采用了 Spring Cloud 2021 & Alibaba、Spring Boot 2.7、Oauth2、MyBatis、Docker、Elasticsearch、Kubernetes等核心技术&#xff0c;同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心…

陆游和辛弃疾都是南宋主战爱国的大才子,而且生活在同一个时代,有没有交集?

辛弃疾和陆游&#xff0c;都是宋朝著名的爱国诗人。但是这两位都没怎么做过正儿八经的大官&#xff0c;按照现代人的说法&#xff0c;他们总是在基层打嘴炮&#xff0c;对于朝廷的决策&#xff0c;他们是无能为力的。 这两位大诗人可以说生活在同一个年代&#xff0c;他们究竟…

【数据结构】算法的时间复杂度和空间复杂度详解

文章目录 一、算法的效率1.1 如何衡量一个算法的好坏1.2 算法的复杂度的概念 二、大O的渐进表示法三、时间复杂度2.1 时间复杂度的概念2.2常见时间复杂度计算举例 四、空间复杂度2.1 空间复杂度的概念2.2常见空间复杂度计算举例五、解决问题的思路LeetCode-exercise 总结 一、算…

Html5惯性小鸟游戏制作与分享(经典游戏)

当年电子词典中的经典游戏&#xff0c;后来出了无数变种的玩法。这里还原了最初的玩法与操作。实现了这一款有点难度“的怀旧经典游戏。 玩法也很简单&#xff0c;不用碰到任何东西、持续下去。。。 可以进行试玩&#xff0c;手机玩起来效果会更好些。 点击试玩 还有很多变种…

Python小姿势 - 知识点:

知识点&#xff1a; Python的字符串格式化 标题&#xff1a; Python字符串格式化实例解析 顺便介绍一下我的另一篇专栏&#xff0c; 《100天精通Python - 快速入门到黑科技》专栏&#xff0c;是由 CSDN 内容合伙人丨全站排名 Top 4 的硬核博主 不吃西红柿 倾力打造。 基础知识…

ASO优化之竞品研究与分析

我们的应用要有绝对优势和不同的营销策略才能在应用商城里脱颖而出&#xff0c;来获取用户的注意力。我们可以通过对自己家应用与竞争对手在相似的功能和后期用户评价方面&#xff0c;提取出有助于提升应用排名的因素&#xff0c;从而确定自己家应用的优化领域。 竞品分析的主…

Debian彻底卸载软件包(apt-get)

彻底卸载软件包可以运行如下命令&#xff1a; 1 # 删除软件及其配置文件 2 apt-get --purge remove <package> 3 # 删除没用的依赖包 4 apt-get autoremove <package> 5 # 此时dpkg的列表中有“rc”状态的软件包&#xff0c;可以执行如下命令做最后清理&#xff1a…

持续集成——App自动化测试集成实战

这里写目录标题 一、app自动化测试持续集成的好处二、环境准备三、Jenkins节点挂载四、节点环境的配置1、JDK2、模拟器3、sdk环境4、Python3环境5、allure-commandline工具6、allure插件 五、本地运行待测代码(保证代码没有问题)六、库文件的导出七、Jenkins上运行代码配置1、指…

如何使用git上传文件到Github远程仓库(完整详细流程)

文章目录 1.在电脑上下载Git2.配置Git3.上传Github仓库 1.在电脑上下载Git git官网下载&#xff1a;Git - Downloads (git-scm.com) 下载后安装即可。 2.配置Git 鼠标右键进入Git命令行 &#xff08;1&#xff09;设置用户名和设置用户账号&#xff08;需要是自己的注册Git…