00:00
好,那来到这儿,下一步参数方法调销售的方法去批量保存线索和市场活动关联关系,所以下边继续了调用销售的方法,然后呢叫保存,保存线索叫批量保存方保存线索和市场活动的关联关系,知道吧。那调service要叫线索和市场关联关系的service,那这个我们在这注入进来那个service了,所以这个地方来注入进来叫线索和上目关联关系的service private叫可录,叫activity,然后呢,这个方来relation service,然后呢可录service。教授。我们啊,这是我们这个这个找它知道,然后呢,这个地方再注入经叫凹凸光,然后呢直接掉它就行,然后呢,我们这个地方调过它。
01:04
然后呢,这个地方来叫,然后呢,Correct录activity relation by list,然后把分装好的relation list保存进。知道吧,然后呢,这个得到一个营销技术投诉it。这样的话来看,我们说现在我们已经来到这一步了,把这个数据该保存的数据都保存好了,下边根据处理结果生成详细信息了,那根据处理结果生成生成什么样的相应信息,就是这么一个相应信息,知道吗?那我要生成这么一个响应信息,那我要把这些数据封到一个加货对象,就封装一个什么,封装一个加快对象里边什么样的加货对象。那就是咱们的return object,然后呢,这个地方的话,我们生成个return object,然后呢,这个再一个我说是吧,保存的时候,这个写数据时候有可能成功或者失败,当然首先我们这个地方来判断一下成功或者失败,开一个算式,然后呢这个地方个这样,然后呢,这个地方来个一点多一秒,如果报异常了,先把错误信息打一下。
02:14
然后把它分成一个加化对象里。把这些信息。那什么样的加位就行,就这个叫RETURN2加,RETURN2加等于六一个RETURN2加这。然后呢,大家看到底成功还是失败了,那你看看吧,如果不报异常,不报异常继续来同们看看it是不是大平。如果大于零,我们就认为成功了,然后呢,成功了,那我们就来return set,然后呢,这个地方来个contain,然后呢点set,点叫什么success,然后呢,如果成功了,根据咱们的设计,还要把这些市场活动的信息往回放。就是为了刷新,把它关了之后刷新这个列表。
03:00
骗住了。那那往回反,你得把什么,把这些市场活动信息先查出来,查的话得调出来调这个service,就我们刚才设计这个。调这个地方市场活动的service调它根据ids,那么根据ID组成数组去查询市场活动,那么调出来调市场浮动service,那这个地方还得什么继续调叫调我们的叫activity service,它这边有个方法,这个方法咱们刚刚写了query activity by ids号。然后把这个什么I市场中ID组成数组成功了。传了些,然后呢,他得到一个list lista里边是一个一个的市场活的持续对象,然后呢,这个地方叫list展现。然后查出来之后,然后呢,把这个list设置到这个return object里边去。
04:00
当然这是成功了你才掉,不成功这个地方你不掉,这跟我们设计的一样,说这个方法只有成功了才掉,不成功不掉,所以我们说往里边设置,设置到哪一个属性里边瑞return data塔里,然后呢,把我们这个list设置出,将来转成鉴定字符罩,它会自动给我们生成相应鉴定头状,生成什么样的鉴定状就是我们所需要的账。就如果成功了,就这样,那我们说这个时啊,这个list的这个数据应该是这样,不可能叫activity,应该叫什么?对return。这样才行。这是如果成功了,返回Co等于一,然后呢,Return德塔,Return塔的值就是一个数值吗?这是我们这,那如果失败了,失败了继续二,那就返回失败这个地方来1.setcode,然后呢,这个是contain.feel那还要返回失败的提示警息,这个这来个。
05:09
哎,这个message,然后呢,这个地方来,哥,我们就是系个毛知道吧,请稍后这,然后如果报异常,报异常肯定也失败了,然后呢,把这个地方来。然后最后把这个对象返回return好,然后呢,把我们这个对象自动的给我转成相应的阶层走访。这样的话,大概我们这个C就行了。这个CTRL就是跟以前来讲的话,就稍微麻烦那么一点点。特别是封装参数的时候。其实道理跟我们以前一样,它就是这个参数,是多个试题的对象。哦,那你说到底写麻烦还是简单,需求决定需求,你知道需求怎西你自己去读的知道吧。
06:04
这种啊,这种,那我们这个重要是什么,它可以批量的保存关联关系,那它就应该封装成持多个持续对象啊。这都是需求读出来的。当当然响应信息,响应信息他这东西也多了一个,又到数据库里边,就查这些市场的动力,为什么要查需求推动,因为需求要把咱们返回。你要刷新这个地方,所以你得往回放知道吧。好,这是我们说这种这个CTRLL我们就行了,CTRLL写了这个后台就行,后台这个流程的后台,那什么后台代码写完了,下边就前台了,前台两件事儿,发请求处理响应,发请求的时候有参数收集参数,需要做表单验证,做表单验证处理响应是在回调行数边处理的。那我们首先来看发请求,什么时候发请求,需求说了说用户什么选择要关联的市场活动,选择完了之后一点关联按钮就发请求了,就在这个地方,他在这选,选完之后一点它发请求,所以我们下边要做的事就是给这个关联这个按钮加一个单击实践去了。
07:14
那我们首先来找到这个按钮,这个按钮应该在这个关联市场中模态窗口里边了,那我们来找找叫线索的明细页面上面,它有一个线索明细页面上面有个线索关联上龙模程度就它。然后呢,找一找那个关联的那个按钮就好。那我们说这个地方有个Dis属性,我们给它去掉。关联成功了,我们手动关这个摩擦窗户,关联失败我还不关了,所以我们这个地方来给它去掉,去掉之后给它加一个I,什么事件加世界,给他一个ID,这个ID的名字你随便起了,我这个地方叫save棒I可开,然后呢发保存关联市场活动。这么一个按钮,然后呢CTRLC拷贝套,然后呢给它加一个单击时间,在入口函数中加。
08:04
给钮,给关联按钮,关联按钮,然后按钮添加,单击事件知道,那首先选中这个关联上头拿到它的解块的对象,下面调视角乘数可Li,单击事件,那我们就可Li了,然后呢,再来常用参数,这个参数本身是个函数。表示当这个按钮上面发生单击事件时候,自动触发这个函数。我们把代码写在这边,写在这边干什么?两件事,发请求处理响应,发请求有参数,收集参数,收集参数,收集什么参数?就是你要发到后台的这些参数。哪发到后台上,那你看去,他说首先一个就是市场活动的ID,哪些市场活的I你选了几个,然后呢,把这些市场活动ID拿到拼成这么一个字符串返回就行了。
09:03
因为它是一个参数名,对应多个参数值。那我要获取这市场方ID,获取市场方ID,这些市场方ID都给前面拆个包绑定,那下边我们要做的是是不是就是要获取这些什么?列表中所有被选中的T克boss是不是这样的,拿到他们把上面绑定的Y6属性值就行了,知道吗?那外力水之我们昨天什么都已经绑定到各个时中市场活中的ID了,所以下边我们要获取列表中所有被选中的check boxs,然后把每一个拆boxs上面绑定了外力属值渠道,就是每一个市场活动选中的市场中的ID值了,所以我们这个地方记取了来获取获取列表中。列表中所有被选中的或者被选择的,然后呢,Check box拆了bos正确了,那如何获取猎容所有被选择拆boss?
10:05
这个是不是已经获取很多很多遍了,已经对列表中,那首先什么找列表,那个列表就是那个提包队,哪一个提包队就这个提包腿,就是他他下边的拆克boxs,那他看嘛,那这个T包腿ID选择器找个T包,他下边的拆克boxs空格叫input,对check box check等于check box,这是它下边所有的check box对我要过去呢,被选择的拆包拆,然后呢,这个地方定一个变量去报存,然后呢,这个地方来个叫。啊,拆开的是吧,Ids吧,当然这个名字你叫啥无所谓了,我就知道了,那我说这是个解剖的对象,在这个解块的对象里边包含着一个数组,是由那些所有被选中的元素盗墓对象组成出。
11:01
那我们可以通过这个数组呢,做个表单验证,做个表单验证,做什么表单验证需求说了,这个地方必须选一个,如果一个不选点,这儿不让点。所以那就看他是不是选了。那是不是选了,就看看这个数组里边有几个元素,对,那就看看吧,这个地方来一个它的元素的个数叫什么。三对看看等不等于零,如果等于零,说明一个都没选,一个都没选,提示信息告诉他请选择要关联的市场活动,是请选择要关联的市场活动这样情况。那提示完了之后,后边代码都不用执行了,因为他压根儿就没选啊,所以向后台发请求也没什么意义了。这是我们说做个表态验证。那如果是选了,选了这个肯定不等于零,不等于零,这边进来继续往下走,继续往下走干什么。
12:03
那我就要获取这个数组里边每一个check boxs上面绑定的Y6属性值了,那获取的话怎么获取,那就获取里边每一个元素等Y6分值,那获取每一个元素是不是就变力了,对变利变成它是GS变量,变力的时候不能用GSTL变力了,只能用什么到时候对一变。他是便利哪一个数组,我就变利这个数组。然后呢,变利的时候又个回调函数,这里边有个循环,有循环的一个下标,变利的下标还有一个什么循环变量。在这我们这个地方就是每一个是吧,对每一个拆boxs盗墓对象放到这,当然这俩参数用到可以写,用不到可以不写,知道吧,对那我们说这里边还有个内置对象表示什么,跟它也是一样,循环变量,对也是每一个元素都有对象知。
13:03
我们说这俩个用哪一个,那我说简单的我们用它,复杂的用它,我们就说过去Y轴属性值,其实它就够了,所以这两个可以不要,但你不这俩都带着就当然也行了,然后我们这个段用不着,我就不要。这样从这里边每拿一个check boxs,选中的check box盗墓对象都附到这里,附到这里边干什么?获取VALUE6值,它是盗墓对象,直接点就行了,知道吧,获取它干什么?对拼成这么一个字符串,前面加一个参数,名叫active ID等于。这样就行了,那说来办法,那前面给它加吧,加一个那就这么加了,字符串拼接参数名叫IID等于知道。每变成一个拆开boxs,然后呢,拼这么一个字符串,每变法拼,每变法拼拼到一个大字符串里边,可以听不那说这种个小字符串中间用了吗?对,用这个and的符号隔开这个加一个and的符号啊。
14:11
每变成一个叉包袱,都拼这么一个小小字符串,然后把这小字符串拼成一个大字符串里,哪一个大字符串这个地方定义一个大字符串,这个大字位我就叫ids,当你叫啥无所谓了,一开始是空的,每变出来一个拼这么个小字位,把这个小字位往这大字位拼。拼的话,那就是甲等于对。这说我们这样便利完所有的拆克,Bos被选中拆boxs,那么都拼成这个大字果了,拼完的结果就这子,拼完的结果就这样,I推推ID等于一个值and a推推ID等于一个值and啊,一直往后边拼,然后呢,直到拼的最后一个I特ID等于一个值,后边是不是多了一个I呢?多了一个呢?按理说可以截掉它,当然我们又一看,后边是不是还有一个参数没拼这边呢,叫可ID,把那个可录ID一块拼里边就行了。
15:10
哪怕CID一块拼里边,那么继续I这个ID知道吗?再往里边拼,加加谁。它本来就是这样子了,后边是不是再加个可录ID等于啊,可录ID等于那个值从哪取?求里对,请求里边是不是从作文里边取啊,作文里边取,在页面里边取,是不是一表达式,一表达式直接取就行了,一到的时候取可录点ID是不是这样子,对这样就行了。那你说这这个这这ER表达式在进段时放到做放到引号里边吗?这不就引号吗?这不就引号,然后呢,够平衡,这样的话大让我说最终得到一个字符串,就这么一个字符块。
16:11
可录ID,然后呢,等于一个值,就最终得到这么一个,这正好是我们前面设计的这么一个参数啊。这样的话,大家我们这参数都收集到了,也都什么验证了,也都相应的格式也都拼好了,拼好之后下面就可以发送请求了。下边我们来发送请求。发动能力,那是个异步停入,这是我们设计好的异步停入,高老符号点阿贾克斯,这然后呢,在这时成了一个对象,对象的这个好,然后呢,这个时候那个URL,那你要发到哪去,就发到咱们写这个CTRLL就发到这了。
17:04
保存线索关联市场活动。然后呢,我们这个地方来一个就是它这诶这然后呢,继续来这个是对塔,这个data塔,那就我们拼好的这个字符串,就它就这个字符串。这种格式的,这种格式的参数,它能够向后台提交一个参数名对应多个参数值的,这种情况只能用它。不能再用以前的那种大括号了,就这样好,然后呢这个地方继续来,然后呢后边来个type,然后呢这个地方来个post,然后呢这个地方来个data看,然后呢这个地方来个接起。好,这是我们前台的第一个指责就完成了,他一点,那么关联按钮向后台发这么一个请求。
18:01
把选中的市场工作ID和当前线索ID发到后台。然后下边处理响应萨处理响应,再回到函数边处理,然后呢,这里边有个data塔接收响应信息。这个响应信息是什么?就这个,就这么一个杰森读串,这个杰森串。拿下边解析杰森渲染页面就行了,来,那么解析杰森那就看关联成功了还是失败了,那你来看看吧,然后呢,这个地方啊,然后来看看贝塔点扣的对等不等于一,等于一说明成功了,成功了怎么办啊,我们这个地方已经设计好了线索关联市场额度就是道,如果成功了,在这个地方关闭摩大账户需求,叫我做了关闭摩托时,那就把它关了就行了,然后呢,这地方刀了时候把它关了点,然后呢,在这里边来一个关闭插行了,下边还有什么叫刷新已经关联的市场工作列表。
19:13
然后呢,刷新已经关联到这面刷新哪一个,把它关了之后就刷这个刷这个列表。刷这个列表怎么刷?我们说了动态的刷。把你从后台返回的这个数独。里边有一个元素取出来,取出来之后干什么,然后呢,拼一行显追加,追加显示到这知么又取出来一个最加显数就行了。那到底显示几个,你看那个数组里边成功观里面几个查出来了几个,那你在这边就拼几行就行了,知道吗?那拼几行到底有几个,那我的便利这个数独了,就返回的这个数独,便利这个数独每次变成一个市场活动拼一行,每次变成一个市场活动拼一行,都拼到一个大字符串里边,把那个大字符这追加显示到这儿就行了。
20:03
所以下边我叫便利这个数组了,那便利数组到了时候一这不是作用率里边数据,那直接便利便利,谁便利得塔得塔谁得塔就表示这么整个这个对象。那这个数组是数组是这个data里边的这个圆,这个什么属性叫return data属性,那我们这个来遍利它点叫return data这个属性它就是一个数组,知道吗?便利它。然后呢,大家看在这里边后边提供一个方式啊,在这个方式里边有一个in表示循环的下标。然后呢,大家看在后边有一个什么OB线需要转动。然后呢,大家看,那将来他会从这边每取一个市场活动的对象,然后都放到这里面去。每取一个市场中对象都放在这,然后呢,放这里面之后干什么执行这个函数题,我们在这函数里边干么要拼这么一行,当然里边数据从循环面那边取就行了,那拼这么一行,那我就去找一行去了。
21:09
找一行,看到哪去找你啊,应该在最下边,对,应该应该在这个最下边。诶,那一行呢,这这是已经关联过的市场活动那个列表,这是表头啊t have,这是提包的数据行。这是已经关联过的那些事,我们就拼这么一行就行了。就当时我们写明细页面的时候,这这是显示的,然后呢,拼这么一行,每变成一个拼一行就行了,然后呢,放到这里边看。放到这里边,那拼一行,把它们都拼成一个大字符串里边,最后把那个大字符串显示到列表当中,所以那这个地方定一个大字符串,这个大字串我就VR定义了,然后这个地方叫HTMLSTL,等于啊,一开始是空的,然后呢,每变成一行都往里边追加就行了,那追加来呗,加等于括号括去了。
22:15
啊,都让追加里边去,那就追加呗,追加追加追加追加追加追加,然后呢,后边这些都括起来括起来括起来括起来括起来。然后呢,这个地方也给它括起来。这样的话大概我们都可以了,当然每一行里边数据都从巡航表那边取。那就取吧,那这个一个宣传面上就一个市场活动对象,那市场活动对象那就来看吧,那这个地方应该显示对市场活动的名字,你知道吗?对市场活动名字,那就来看看,那这个取。那这个obg是个GS变量,那这时候要把这个什么字符串隔开,它的值是OG,点对内容。
23:05
然后呢,同样的这一列是开始日期,开始日期也把他们这些去掉。然后也从obj里边取obj表开始日期,这是结束日期,然后呢,这个地方也是隔开,隔开这地方来个好,然后呢,带上这是结束日期,下边这个是所有者,所有者所有者来个OG点所有者这一个大家看就是后边那个超级链接。是吧,就是这个解除关联就好。那这个先把里边双引号都给它转移了,转移。转移转移转移转移,然后呢,这些都给他转移了,转移。转移转移转移行转到图标,当然我们说这个图标将来一点,是不是我要获取这条市场活动ID啊,市场化ID,这个市场化ID可以这个自定义的属性绑定。
24:11
那它的值那就取从这个obj里边取就行了,然后呢,这个地方来一个obj,哎,这个地方这个输入法又不对。然后呢,这个地方呢,跑,然后呢Og.ID。这样的话,大家从这个数组里边每取一个元素拼这么一行。然后把这一行都放到一个大字串上。取完了都放到大豆串里了。然后把大豆腐串。显示到这列表下边去了。显示到列表下边,用哪一个函数去显示就。对,是不是APA了,这个地方是不是就不能用那个什么HTML了,对,不能用了,因为这个地方人家原来有可能已经关联过的,别给人家覆盖了,所以也是呃判了啊,来找到人找到那个提包,呃判断一下就行了,找哪个提包的来看那个提包的是谁呢。
25:14
T包的应该在最下边已经关联过的市场中列表那个提包位。这个提包点,这个提包点可别找模态窗口里边能提包点啊,这个提包点,这个提包队给他起个ID,这个ID知因为要往里追加讲的内容,我这个地方就叫relation啊,或者relation的叫做提包对吧。但你叫什么都无所谓了,我这个地就叫他已经关联过的市场活动列表都提过没?然后呢,大我们这个地方来拿到,到了符候它拿到它让它点哦判断追加显示,最加显示叫HTMLST,这样就形成。
26:01
这样的话大家看,如果关联成功了,这就行了啊,这个地方少写了一个C,这。这是我们说的这四个三啊,好,这就去了,这如果成功了,我们就这关闭文档窗口,刷新已经关联过的市场文列表。然后呢,这个地方这这成了失败了,来一个个艾尔斯艾尔斯那这种方提示信息,那我们来一个alo,来一个塔,然后呢,这个地方来个data.message那列表是吧,模态窗口不关闭啊,其实本来不关闭,我们这个地方给他收一下就行了。然后呢,这个地方大家是列表不刷新不用管了,这样的话,大家我们这个前排也写完了,就这个流程就保存线索关联市场活动这个前排也写了。
27:02
那这个流程前台后台都行了,下边我们去测一测,好,下边来启动服务测一测。好。好,然后呢,还有张三YF123登录,然后呢线索,然后查看线索明细,假如我想给当前线索关联一个市场活动,那么我就可以点这了,一点这儿我去搜,去搜的时候键盘一弹起就给我列出来了。列,你比如说看我想找一个市场活动给他关联上,假如假如我一个不选来看你点那么多,不让你点,你点关键不让点,让你去选择。那说那我这选选了吧,你比如选这两个,选这两个。
28:04
选这两个大咖,我一点它就关联上了,你看你看一点关联大咖关联上。关了通话膜带,窗口关闭,下边马上就刷出来了。那牛老师你再进来他有没有有啊,再进来你看线索关联上中这俩已经有了,也有,我们做明细查询的时候都已经就就是这么做的,以前没出来就是因为没有关联的市场活动,所以没查出来,现在关联的有,那你现在还能给他关联吗?可以啊,假如这个线索我发现他又参加过一场活动。我再给大象关联一个点,它在这边再去搜索大象刚才已经关联过的就没了啊,搜不出来了,不能重复关联。那我再给他关联一个,你比说他,我再给他关联一个,我再把这一个吧。这这这俩给他关联着。这俩给他关联,你要一关联大看一点关联,这俩也关联上。
29:01
你再关联别的也一样都可以。好,这是我们说的这样。这个地方确实有点问题是吧。不知道大家发现没有,但是功能肯定基本功能肯定实现了,是吧,有点问题,哪个问题,假如我现在我再想给它关联我这个页面,我不重新进我一点这个,你看发生什么事。这俩是不是还有啊,还有我再一点关联吗。重复关联了。这俩市场活动跟这个线索已经关联过了,你点重复关联了,他说不能重复关联,那怎么办呢。给他给那个T包,那个包。给哪一个给给这个提包的时候,给这个提包的等着对给他清空了是吧,让他每次什么来到这个页面,是不是只要是打开这多大窗口都得什么重新去查一下去是吧,你别让他什么上次关联的还存在,明白这意思吧,都是都是什么每次关联之前必须这个什么列表必须是新的。
30:13
如果不是新的,他上次关联过了,你把摩台隐藏了,隐藏它有可能是吧是吧,隐藏了,隐藏完了之后,他有可能这个什么啊,有可能这些吧,上次关联的还存在,虽然隐藏了看不见了,但是还存在,再一点开还有一点关联存度关了,所以我们可以什么可以干什么,每次点开这个茅台窗口的时候,把这里面的清空,而且这个地方假如说以前有有搜索的东西在看。这个框是不是假如说他以前有输入条件了,再一点开他上次输入条件是不是也应该给他清空啊,也应该清除,所以我我们应该是这样这样,每次点它的时候,窗口弹之前,先把那个提包的模在窗口里边,这个提包的以及这个搜索框给它清空了。
31:02
把上次搜索过的那些内容痕迹都给它去抹,都给它清了,知道吧,所以大概我们就这么着吧,知道那么一点,它的时候,它摩在装手之前,是不是我们给它加过一个事件啊,加入事件,在那个事件时做个初始化工作就行。好在哪个地方在在这个地方在上面,在这个地方一点关联市场功能,按住弹模带窗口之前可以做个处始化工作,干什么清空搜索框,清空搜索框,把上次搜索的内容呢都给它清了就行,那搜索的内容是谁大看就这个搜索框,搜索框这什就这个。把它清空咋清空,对是不是给他附一个空值就行了,对负个空值啊,然后把那个什么模带窗口里边这个提包得给它清空,打清空。
32:01
其body。赵某就向N安。对,有好多种方式是吧,给他的HTM2里边用HTML,给它里边附个也一内容附个空值是不是也可以啊,把它那个什么A签报里边的那个那些文本信息给他复控制也行。在这里,然后呢清空清空,然后呢搜索的市场活动列表吧,然后呢这个地方来进行空了,选中它,然后呢点叫HTML,然后呢这个地方给它控制这。这样的话就可以了。好,然后再看,那这样改完之后,下边继续来测一测,这样的话就可以了。
33:07
然后呢,这个地方来登录张三YF13回车登录线索那个查看线索明细,这个地方呢,还有关联到四个了,下边我再想把它关联,你把大看再把这个关联上,选中一点关联,关联上了,然后呢,再一点啊大卡又清功了,那说那就再关联再去搜你知道吗?每次为了保证是把上次的都给他清了,上次的给他去掉了,知道呢,我们这个都给他清空。这是我们这么做,其实这样做大家感觉好不好这么做。其实对用户来讲体验的话其实不太好,按理说应该怎么办呢。啊,点进去点点哪个地方就一点关联的时候,这样都给他查好是吧,把所有的都查出来是不是这样的,这样这样也行,这样,但是你怕万一数据很多呢,每次一点都得都有一个滚动条出来了。
34:15
是吧?其实这样这样人,你看客户需求了,客户想让你查了,你就查出来,他对我们来说技术肯定不成问题了,他让你查你就查知道吧。是吧,他不让你抢,你就别查,那其实也可以这样做,你看行不行这样做啊。假如说搜了好几好几条好几条怎么办呢?假如说我这段我就选中他了一点关联,关联成功了,关联成功了呢,这个我不清,这些我也不清。我我我只把谁啊关联成功的这些TR给他删了。动态的从页面上删掉,Remove掉,别的人没选的还得让他有。
35:01
然后他一点开呢。把刚才关联成功的那些已经去掉了,剩下这些还有他上次搜索还有,然后呢,只不过什么他刚才没选而已。这样可不可以这个地方也不给他清空?这样可不可以?这样也可以是吧,但这样做好做吗?你觉得。对,不好做。按理说要让你做应该也能做,那让你做你咋做?就是删除那个完成的ID。删除哪个名称ID的那个。反正你要删除选中的这1TR,是不是你得拿到这1TR,你得定位到这些,怎么定位到这一选中的TR。计划。这些。那个那那话,那你就把这TR给相应的数据是不是绑定了,那可你也可以给ID绑定,拿到那些ID,便利那些ID,然后通过ID选择器拿到每一个选中的tr remove掉就行了,这样做也行,我们说现在大家跟我们说,像这些只要他能提出来需求,我们都能实现,知道吧,从技术上来讲应该不存在障碍的啊,大家课下可以自己尝试着这么来做。
36:21
知道吧,但我们课堂上就不这么做了,我们课堂上就这么做,就就像我们这么做。好,大家课下可以尝试,我刚才说那个。好,当然你优先按照课堂上来做,因为课堂这个其实咱们买过来,他们也是这么做的,刚才我说那种是什么感觉,什么更好一个,更好的一些这个这种做法,但他们咱们买他们项目,他们也不是这么做的啊。啊,他们跟咱们课堂做的是一样。好,这是我们这个,但你有想法的话,我们说你都可以自己尝试技术,反正你就会了,知道吧。然后在思路呢,可能现在应该也差不多了,应该说。
37:02
你有一些想法,你都能够自己尝试着做了,你想做成什么样,做成什么样子,就是现在就是说你现在你手里边有这种武器了,是吧,就有这种技术了,你想咋做,你有什么想法都可以做啊。这些这是我们这好对,这是我们这个关于线索关联市场活动的这个功能,我们就给他走到这了啊,这是一个流程,这个流程稍微麻烦一麻烦一点啊。好,这个我们先做到这好,下边大家休息一会,休息,我们来看看解除观点,好,下面休息一会好。当我们这个线索关联市场活动,这个我们就做到这了,下边我能关联,肯定也能解除关联。关联就是往第三张表里边加记录的解除,那就是从第三张表里边儿去删除某一条记录啊,那添加第三张表里边有一条记录,对应一个关联关系。那我也想删除一个关联关系,就是从第三张表里边删除一条记录就行了,知道吧?嗯,那他的需求就是这样的需求呢,我们首先来看一下这个需求,然后用户在查看这个线索明细的时候,发现,哦,这个线索关联一些市场活动,然后发现某一个市场活动他说关联错了,这个线索没参加过这个活动,怎么办呢?点后边这个解除关理关一点它向后台发请求,然后呢,去删除当前线索和这个市场活动关理关系,就从第三个表删一条记录,删除了,如果删除成功了,刷这个列表,刷的时候只刷这一表,你就解除它,别的没动的你别管啊,然后就把这一条删了就行了。
38:39
从这个列表中删掉就行了,知道吧,其实删掉就remove掉就行,就这意思知道吧,啊这时候我们说是删除成功,如果删除失败了提示信息,那这个地方也不用删了,不用刷了,知道吧,但他他这个需求就相当于关联的话,就比较简单了,删数据一般来说搞破坏性的这种动作操作一般来讲都比较简单,但是说生成数据这是比较单的,就创建数据比较难,你说删数据比较简单,所以他这个流程比较简单,说用户一点它,然后呢就解除了,解除成功了把它删掉,然后解除失败了,提这不刷啊,这个地方也不删就行了,这大概这个需求好,大家需求以后大概了解之后,大家看看需求文档上描述懂吧,这是他的描述,就这。
39:25
解除线索关联市场活动,那他这个描述到这,用户在线索明细页面上点击某一个解除关联按钮,弹出确认解除嘛,那确认解除这个成熟那吧,然后呢,用户点击确定完成解除线索关联这个市场活动这个功能,然后呢,他有些透后他说解除成功之后,刷新已经关联过的市场功能列表,那就是方的话,你解除哪一个,把那个把那一行删掉就行了。动态的刷新,再一个解除失败提示信息列表不刷新,这跟我们这个流程说的这种流程基本上一样。
40:00
所以大家我们说对这个流程大家我们说明确之后呢,对他这个业务明确之后呢,下边我们准备来分析一下,看到底怎么去做好,下边我们来设计一下吧就行了,他也不牵扯到别的什么新技术什么之类的,那这些表也就我们操作那个什么第三张表,所以别的也没什么好说的,下边我们直接画这个流程就行了。叫一个叫线索解除线索关联是什么?来简单画一个流程,然后呢,这个流程我们就知道叫解除啊线索。关联啊,关联市场活动这样,然后呢,把它双击打开来画工多流程,那我说所有流程都是从客户端发起的,它也是一样客户端,那客户端怎么发起需求说了,用户在线索明细页证上面,在查看线索明细息的时候,发现他跟某一个市场活动没有关联关系,那他就点后边那个解除关联按钮,用户点击点击什么点击解除关联按钮,解除关联这么一个按钮啊,他一点解除关联,按照需求说了,会弹出一个确认解除的一个对话框,弹出确认解除啊确认解除的对话框,对话框。
41:24
他一弹出说那个对话框,然我们说一弹出对话框,然后呢,用户点击确定就要向获得发请求了,但是他点取消就无所谓了,然后我说用户点击确定,用户点击确定是吧,这个时候就要相互的挖。为什么后台发境图?因为我们说这些第三表数据在后台存储的,你必须从后台删除据所以向后台发,那像后台发境图,后台要提供CL来处理了,所以这都是一步一步过了,懂吗?那后台提供填L,后台提供填L,提供什么样的填充了?
42:00
那么提供什么样的,前面那么说解除线索关联上,将来响应信息还是回到这个线索明细页面上,对,所以还是在原来的线索CTRL上面加个方法就行了,所以我们这个地方叫线索ctrler,叫C录ctrler,在上面加一个方法来接收和处理这个请求就行了。然后呢,我们这个地方来向他发一个请求,这个请求是个解除的请求,解除请求啊啊,他一点确定就这样,那这个请求大纲同步倒是一步导一步对还是一步导不跳转页面响应信息那吧,回来之后页面不跳上局部刷新,所以是个异步请求,都是在一页面完异步请求需要提交什么参数。吓死我了。市场关对是不是市场活动ID,还有线索ID对他俩唯一决定一条关联关系,所以到第三去删除就行了,所以我们这段来个市场活动ID,来个艾可KID,还有一个当前线索的ID叫可录ID,这样这样会害了。
43:14
然后呢,大家把这俩参数发到后台就行了,决定一个关联,把那个关联关系删掉就行了。根据他俩。然后这CTRL接口请求之后三个职责,第一个有参数获取,参数怎么获取,通过行参获取,然后呢,这俩参数,我们说两个参数最好封装,那封装程封装成map还是封装实体的对象,对实体的对象,它俩属于一个relation实体的对象,而且他俩将来传给service层,传给we层,传给service句是删除数据,删除数据的时候写数据。我们前面给大家说过,像这种情况下就有分装实体类对象,实体类对象那就是那个relation对象,知道吧。这样的话,大概我们说CTRL层的第一个指责就完成了,接收到请求之后获取参数封装盒封装层封装后,下边第二个处理业务,处理业务干什么?我们这个地方就是从第三张表中删除一条记录就行了。
44:11
那他自己不能直接处理,他要调service,那调谁的service,调关联关系的service,因为要操作关联关系表了,所以要调线索,市场活动叫关联关系叫。然后呢,在这里加一个方法。这个方法干什么?就是根据两个ID去删除一个关联关系。所以我们这个地方来在这边加个方法,让CTRL调光,那这个方法删除数据L叫c I play,然后呢,Relation删除线索和社中关根据什么删BY根据可录ID和ID,根据两个ID去删,然后这里边传送参数,这个参数就是一个relation实际的对象那。
45:03
这时候我要这样,然后呢,这个service就会以到数据库里边,把一条关联关系删了,它不能直接访问后它的调map,所以那在这调用map,那这map来个叫线索和市场活动关联关系的map知道,然后呢呢在这个map里边提供一个方法。这个方法也是根据两个ID去删除线索和市场活动关联关系,然后呢这个地方也是叫delete,然后呢叫可录IV,然后呢relation,然后呢by c ID和ID,然后呢在这里边传了一个relation实体的对象。然后呢,这个map带上它就可以通过MY8子去访问数据库,然后呢去删除,记住了,然后这个地方就是执行招数据直行收入区。
46:02
来删除线索和市场活动的关联关系。然后删除完之后,把删除的结果往回放。那王法删除的骚扰句,影响记录的跑部防止。然后呢,把影响技术条出,继续往外返,谁调到访问,谁访问给CT了,这样CT了就拿到影响技术条入了。那CTRL了,第二个职责就完成了,把数据都处理好了,该删的数据都删除,删完了,下边第三个职责,根据处理结果看删成功了还是删除的了,根据处理结果,然后呢,生成响应信息,知道了生成响应信息,然后把响应信息往回返就行了。往外发,然后呢,这个是个响应响应。那这个大家想一想,这个响应信息是个什么样的信息,看看,对对,从格式上来讲,前面发的一个行,阿贾克斯发的响应给阿贾,阿贾克斯能解数据只有杰森,杰森里边包含什么?对,那你看前台需要什么,前台说了,如果成功了,把这一行删了。
47:11
那把这一行上来,又不是拼这一行,不是显示这一行,所以不需要什么数据,其实就删了对吧,那么不需要数据,那如果失败了,提示信息这一行业不生,所以呢,我们认为总的而言,前台只需要知道后台删成功了还是失败了。所以我们返回了成功或失败一个标记一成功了零是吧,成功了无所谓了,就返回一个一就行了,失败了还要返回提示信息,知道吗?然后呢呢把它往回返就行,这么一个杰森方,那这个杰森返回的钱在返的钱在哪了?阿贾克斯的回调函数了,阿贾克斯回调函数拿到这个杰森之后,解析杰森渲染证,渲染证那那怎么解析阶算渲染验证,那就是看看成功了是吧,成功了把这一行删了。
48:03
失败了,其实不含,不含就行,所以这是我们整个这个流程就设计完了,这个流程相对简单一些,我们说这是破坏性的操作,基本上删数据基本上都比较简单。他不像创建。创建的时候比较麻烦,好啊,流程设计好之后,下边就容易写代码了,写代码都比较好写了,就目前写到这个,写到目前做到这种程度是吧,你看这些代码都不太成太大的问题了。因为现在我们这个CRM项目应该接近尾声了,快,嗯,接差不多接近没没几个功能了,嗯,好,下面我们来写这个代码了,那写这个代码,下边我们来写这个从底层,而且先在map这边加一个方法,在线索和市场关联关系的麦表加一个方法,这个方法就是根据两个ID去删除线索和市场活动关联关系,好,下边我来写这了,然后呢,在这个relation map找我们的relation map。找呢叫relation map,然后呢,这个地方来一个relation map,然后呢在这里边加一个称号啊,然后呢,这个方法都设计好了,仿值影响技术条数。
49:11
然后呢,方法名delete叫可录可然后呢,Relation by,然后呢,我们的可录ID和ID,这里边谈个参数,这个参数是个线索和市场宏关联关系的实体的对象啊。然后呢,在这里边我们给他一个注释,这个注释就是根据嗯可录ID和activity ID啊,然后呢,删除删除线索和市场活动的关联关系啊好这样我们方法定好了,方法定好了让后呢应这个什么,在应射文件上提供个搜数据。那听骚数句删除到骚数句得例子ID要和方扰名一样,把这方扰名拷贝过来,CTRLC拷贝过来,然后呢放到我们这里,然后呢参数帕尔米特派,那根据我们的设计,这是个实体的对象,所以我们直接考了一个实题的对象。
50:14
把它拷贝过来啊,访问值delete语句,自动访问一行技术条入,不用写雷达外态B。让他直接写我们错误句行了,曹数那写错误句写完删除到错误句比例。然后呢,From从哪个表格上,那么说解除关联关系就从第三个表格上。删一条记录就解除一个关方,然后根据什么删Y,你根据两个外键删两个外键,一个是可录ID,等于传过来那个什么实体类的可录ID属性,并且按照。根据ID上那取值还是取那实体类的ID属性。
51:00
这样的话,那我们就骚扰句就行了。骚扰预行了map层就行了啊,线索和市场中关联关系的map就行了,写完之后下边写层,然后在线索和市场中关联关系的service里加方法,也是根据两个ID去删除线索和市场活动的关联关系,所以我们在这呢,在这个关联关系的service里加方法,关联关系的service在这边再加一个方法。反完之影响技术头部。方法名,Delete还delete叫C录,然后呢让BYC录ID和IID这里边传个参数,这个参数还是那个实题的对象,然后呢,这个地方来一个relation实题对象。方法定义好了,在时间类里边也得加一个方法,Relation service实行的按用out insult implement method这吧所层放的实现调map,然后呢,这个CTRLC调过来。
52:06
调哪一个方法,咱们刚刚写的那个方法,Delete,就这一个方,把这个relation实体对象放过了,这样的话看看这个service层就行了,法法。那surface写完了,这样的话,我们知道micro service就写了,下边就是control了。
我来说两句