00:00
好,大家需求有个是么,了解之后,下边我们就分析一下,看怎么去做了,好下边我们来准备来设计一下这个流程了,所以大家一定要跟上思路啊,跟上思路,要不然你课下没法做了,懂好下回我们来画这个流程了,明白这个地方来画这个流程。然后呢,这个方来线索关联市场活动,线索关联市场活动掌握,然后呢,这个地方来我们设计这个流程好知道吧,然后呢,这个地方来发的,我们说所有的流程都是从客户端发起的,知道吧,所以第一个环节永远是客户端知道。然后呢,我们这个地方来画这个流程了啊,然后呢,这个流程的话,这个地方第一个我们第一个他客户端如何发起的,根据需求我们已经很明确了,他说用户在线索明细页面上面点这个按钮。叫关联市场活动按钮在哪个地方,他在查看一个线索明细的时候,发现这个线索参加过哪些市场活动,他想关联起来,他就点这个地方,用户点这个按钮,用户点击这个按钮,叫用户点击这个内容,用户点击点击这个按钮,用户点击这个按钮,他一点这个按钮,大家看发生了什么事。
01:24
是不是这个摩擦窗口弹出来了,对弹出来这个摩擦口,那弹这个摩擦口,这个摩擦窗口有有动态数据吗?没搜是不是暂时没有啊,没有没有,那直接弹就行了,所以弹出摩托。弹出线索关联市场活动模式弹出线索关联市场活动魔害风头。弹出来这个摩擦窗口,弹出来之后,那用户就看到这个窗口,看到这个窗口干什么,他想把当前线索跟哪些摄场我关联起来,他就输入搜索条件知这都是需求跟我说了知道吧,但在这种描述的嘛,用户在线索关联上网告时候输入搜索条件,你知道。
02:12
他去搜索要关联的市场活动,然后呢,这个地方再去搜索,然后呢,用户输入搜索条件,那输入的时候每次键盘弹起都应该向后台发一个搜索的请求了,知道吧,每次键盘弹起,每次键盘弹起盘起没有。每次键盘弹起,那都要向后台发行,为什么向后台发行?因为这些市场活动,这些信息都在后台存着呢。所以要到后台发请求去查去。那你后台要提供肯来处理了。来处接收这种请求,并且来处理他。其实就是根据名称。
03:00
去模糊查询市场活动,并且把那些跟当前线索已经关联过的市场活动排除了,知道吗?这是我们刚才分析的,因为已经关联过的最好不要查出来了,你查出来之后将来什么一点关联,当然我们说你要如果查出来之后,如果是关联过的和没关联过的,只要符合条件都查出来,你点关联,你还是做验证。我要如果查询的时候去做什么就已经排除了,查出来就不用做验证了。让我。所以我在查询的时候就应该什么就排除去那干什么,就是在CTRL里边来做这些事了,那CTRL要有一个什么ctrler来接收并且处理这个请求了,那这个CTRL我们说是新创建CTRL,还是在原来CTRL基础上加方法。那你看他处理租源路径是不是占一个目录,他处理租路径,那就看他应信息发到哪个页面里边,响应信息访到哪个页面。对,是不是还是页面,那这页面是不是还是线索的页面,在线索那个什么可录的目录里边,那那个目录边占一个独立的资源目录,它这个对应的CTRL是不是叫C录ctrller,所以在可录CTRL加上了可录ctrler。
04:16
然后在这里边加一个方法就行,加一个方法来接收,并且什么来处理这个请求,这个请求是干什么叫搜索请求,搜索请求知道吧。就在这个地方,每次用户在这个地方,每次输一个关键词,每次键盘弹起向后台发一个搜索请求。去根据名称模糊查询市场活动,并且把跟当前线索关联过的市场活动排除。就这意思,所以那这种发行请求,大家想想这个请求是同步的还是异步的。对,是不是一步到响应回来之后,不用跳转页面,直接显示到模态窗口下边那个列表里边就行了,所以这个是个什么叫异步请求,那异步请求大纲需要提交什么参数。
05:10
是不是那个关键字啊,那个关键字,它输入那个关键字,那要到市场活动那个什么名称,那个市场活动那个表格,根据名称模糊查询,我们就把它叫做市场活动的名字,Activity name name这个关键字。然后呢,大概我们说除了这个参数,还需要根据什么去查。已经关联活动,对已经关联过的市场活动要排除了,根据什么去排除已经关联过的市场活动?这个是你只能把那些所有符合条件的查出来,我要排,不但符合条件,还要排除,那些已经跟这个当前线索关联过的市场,我都排除了,根据什么去排除去。
06:00
拉去那个卖的。根据谁去查,根据谁去排除去。第三方面儿面儿。第三张表的主件,我们这个页面上面有没有第三张表的组件在这个地方。对,给你另外两个两个两个ID值。不需要根据两个ID值吗?只需要根据哪一个ID值,是不是就能排除了?根据谁的ID值,根据谁的ID能排除?把所有符合所有名字里边含有关键字的市场活动都查出来了,我想排除一些市场活动。我怎么知道哪些市场活动跟这个线索已经关联过了?那就看这市场活动。那就看谁啊,看哪些市场活动跟这个线索已经关联过了。
07:03
那怎么看哪一个哪些市场,我们跟这个线索已经关联过了。查数据库根据什么去查?根据谁啊,对,根据可录ID去查,对哪些市场活动跟当前线索已经关联过了,是不是根据这个线索ID去查,对查到哪去查,到第三张表里边去查。查什么查的ID,根据什么查根据可录ID去查,是不是一下把那些跟这个线索已经关联过的市场文度ID都能查到了,查到之后是不是什么再根据,再到这个什么根据名称模糊查询这个什么结果集里边去排除去。排除完了再卡,是不是剩下的都是没关联过的了?说根据名称模糊查询是这样,大家知道应该说什么,这个地方查出分两步,第一个根据名称市场活动名称activity name到查询所有符合条件的市场活动查出来了,然后干什么,这里边只要符合关键字的这些什么条件的这些市场工作,有的已经关联了,有的没关联。
08:23
我想排除那些已经关联过的,那我要什么根据什么可录ID是不去查询什么。对查询已经关联过的,已经关联过的市场活动能不能查出来,对能查出来,能查出来,然后呢,把查出来这些东西,这些结果从这里边排除就行了。剩下的都是既符合条件又没有关联过,那你说到时候怎么排除,你先别管怎么排除,你大家看是不是根据它去模糊查询,根据它去排除,是不是有这俩参数,从道理上就能什么就能得到我们所需要的,没关联过的又是符合条件,那些市场活动啊,是不是这个意思,就列到列表里边的,你先别管怎么排除,怎么排除,其实语法很简单,知道吧,你们都已经学过了,知道吗?
09:20
语法很简单,主要是有这俩,根据这俩数据去查列表中的数据,大家能理解这个意思吧?对,根据这俩参数就行了。根据这俩参数向后台发起就行了,所以啊,除了根据名称某上还得根据什么可录ID去排除,去已经跟这个线索关联过的市场中,这样就行了。所以这是我们这个看这一个,这一个我们就设计好了,只需要根据他俩就能使就能去查询那些包含名字里边包含关键字的市场活动,并且把那些跟当前线索关联过的市场活动就排除了,怎么排除你先别管,那这是我们这个请求,就发到我们这个C这来了,那发到过来之后再看我们下边继续来。
10:12
那这个CTRL接收到请求之后呢,三个知道,第一个知道接收请求有参数,对获取参数,获取参数,所以大家我说还是流程很重要,知道流程很重要,其实你说语法重要吗?语法重要就像这种排除的,诶写so语排除记录咋排除,对not in排除,因为你要不知道not in的话,你也不知道怎么排除。不知道怎么排除,你这个分析也不好分析了,知道吗?啊,所以我们说这些思路是以语法为基础的。这些啊,所以如果说前面一些语法掌握的不熟练,这些思路有可能就会出现问题啊。啊,但我们说这种语法的,你用多了,你就会了,你就熟练了,还是那个过程,还还是那句话,你说吧,你要掌握熟练,你得付出努力,知道吧,你写多了,你记多了,你想多了。
11:11
你付出劳动了,那你就能记住。你总想想轻松一会儿,就过一会儿,就就是一会儿,那这个时候呢,那就完了是吧,你越往后别人熟练了,你没熟练,那就越拉越多,知道吗?就这意思知对就是这你你想轻松的话,你就付出代价的,呃,换句话说,你要辛苦了,那那你就有收获知道吗?这个东西来不得半点半点虚假,知道吗?你半点虚假你骗不了谁知道吗?这个知识这个东西他不认人,你知道吧,你说我帅,我长得帅,那你说知道不,他不认你知道吧,他不认你,你长得帅没用,你不记,他不会自己找你,然后哈,就知道知吧,反过来你只要付出了,你肯定有收获,你不付出你那么怎么着你都学不会这个东西,你假不了,我说为什么这个行业当中就是说就是说其实相对于别的行业来讲的话,其实竞争还是比较公平的,他不论你出身,不论你的这种什么学历之类的,就看你的付出知,他不看你的别的知,这个应该在在这个行业中竞争还是相对比较公平的。
12:24
他不不看关系,不看别的知吗?技术行就行知道吗?技术不行,你说说的再再好也不行吗?就这个意思知,所以我们这个就就是这样好,这是我们这种啊,所以呢,还是那句话,知道我们这个在课下当中,你不用不要怕重复,你说老师我都做过两遍了,两遍也得也得做,你知道吗。做做熟练了,你自然而然的这些思路啊,这些编程的思想,你你自然而然也就也就想起来了,你要不熟练,你看着诶,我会了老师,但是你真正用到时候你想不起来,知道你形不成这种编程的思路,知啊这是一个熟能生巧的过程。
13:05
就像来我们说你就是学自行车,你说他骑自行车,诶学骑得好,他是什么,他能骑出来一些花样,为什么骑熟练,你说我会骑自行车,你骑不出来花样干什么,你骑的少啊,知吧,你说你骑的多了,你天天骑,你说你像那些自行车有那些叫花样,花样这个什么什么技巧挑挑战的那些,他就天天骑,他不干别的,他天天先骑一骑,所以说他认为他能骑出来花样,你要天天骑你也可以,知吧,有这个意思吧,所以我们这个就达到一定熟练程度,就这。好,这是我们,你不要怕写代码吗?不要怕麻烦,我们干这个事,我们就靠这个吃饭的,对,这是我们这好,但是这是我们这个获取参数,获取了之后两个参数最好封装一下,那我们这个封装一下,那封装参数当然你不封装也行,不封装以后传给so能传给层传给骚去比较麻烦,知道吧,所以说呢,我们最好封装,封装成封装是什么呢?对吧,这个封装是什么呢。
14:07
那那你看他俩是不是属于一个实体的对象呢?市场活动名字和线索的ID有关系吗?没啥关系,不,不是属于一个设计对象,想封装设计对象也不行。那什么对,只有map了,只有map了,而且这俩个什么参数将来传给my service,传给map,传给service局是做查询条件的,所以这个时候不能卖。封装好了之后,那我们下边什么就可以掉for了,就第一个职责就完成了,就第一个职责我们这个就完成了,接收到请求,参数拿到就封装好了,下边第二个叫做处理业务,处理业务我们这儿就查数据,查什么数据,根据名称模糊查询市场额度。并且把那些跟这个线索关联过的市场活动排除了,知道吧,所以大家这个地方来,那知道吧,去查市场活动了,那查的话那就掉所萎死。
15:06
CTRL不能直接查,那调service,调谁的service,查市场活动,调市场活动service,所以我们这个地方的service service,然后呢,在这个service里边加一个方法,这个方法就是根据名称模糊查询市场互动。并且把那些跟指定的线索关联过的市场活动排除了,在这边来提供一个方法,这个方法名我就建明之义了,我就直接这么写了,Query查询了吗?Activity。X,那他查的时候大家看也是在明细页面操作的,大看查的这些字段,这些市场文字字段,关联字段也是查名字,所以我这个方法名也叫four,然后呢,BYBY根据什么查,根据市场上的名字模糊查询。
16:06
而且还要根据可录ID把那些跟这个线索关联过的市场活动行排除的,那还要根据可录ID去排除,去它这个方法就这样,小括号这里边它个参数,那就能个map封装好了,就这了,这时候我们要这样,那这个service它就要访问数据库。来去什么?根据名称模糊查询市场活动,并且把跟指定线索的市场活动关联过的市场活动排除了。那他不能直接访调map,查市场活动,调市场活动的map map。然后呢,在这个map里边来提供一个方法。这个方法也是根据名称模糊查询市场活动,并且把那些根指定的线索ID关联过的市场活动排除了,那这个方法名我就直接写了,那这个写查询的select,那个for,然后呢,BY可录ID by name根据名称模糊查询上以及ID。
17:16
并且把指跟指定线索ID指定线索的关联过的摄场活动排除了,然后这里边常景参数,这个参数就是封装好的能排,这时候我们要这样,那这个map就可以来通过MY8访问数据库来执行搜R据了,那这个地方来执行搜狗据来查询市场活动,市场活动来说我们这其实这个骚lo机,大家现在就能大概能想象一下这个骚lo机什么样子的。它肯定有猫头鹰就排除记录的啊知吧,所以这些都是大家学过的这些语法,知道一会儿我们写的,后来看看,然后呢,执行完了,把执行的结果往外发,那往外发根据名称模糊查询,那有可能肯定有多条记录,那每一个记录。
18:10
都分成一个市场活动实体的对象叫activity,然后呢,一个实体的对象多个市场活动,你意思吧。然后把list返回到前台。就返回controller,然后返回这controller,这个control就查到了,根据名称模糊查询到农业市场活,并且把已经跟这个线索关联过的市场活已经排除了。那牌手拿到数据之后怎么办?第二个职责就完成了,然后第三个职责要把什么数据,查询到的这些数据,合法的这些数据都要返回到前台了,那下边第三个数则根据查询结果,然后呢,生成响应信息,生成响一,然后把响应信息往回返就行了。
19:09
返回响应响应,那大家可以想象一下这个响应信息是个什么样的信息。对,从格式上来讲,你看前台发请求,前台也不请求阿贾克斯发的响应信息给到阿贾克斯,阿贾克斯能解析数据,是不是一定是个杰森啊,对,一定杰森,这个杰森里边包含什么。对对,是谁呀,大哥是不是就这个例子啊,对接在里边放什么,你看前台需要什么,前台需要什么,那我们已经分析了,每次键盘弹起前面需要什么,对,就是需要根据关键字模糊查询的市场活动,并且把已经跟当前线索关联市场活动排除了,排除之后的那些市场活动。
20:01
那些市场工作有可能是多条,就是那个列表吧。那就是那个列表,那你就把这个列表返回去,就这个X的例子。那这个列表返回,那把列表转成阶层组块就行了,列表转成阶层组块,转成什么样的阶层组。你把一个list似的转成监定,头上咋转,转成什么样的?对,把一个实体类对象转监测符串,一个大括号里边有属性名,属性值,那把一个list似的转成监测字符串,转成什么样的字符串?对方括号,嗯,中括号对在杰森里边,大括号是表示对象,中括号表示什么?对数度读当然杰森,我们杰森的语法就是嗯,就杰,这以后再给大家说杰森语法,这说当然我们就知道这样去了,把一个对象转成杰森逗串大括号,把一个数组或者把一个list转成杰森串中括号,中括号表示杰森的数组。
21:04
这里边儿可以有多个元素。那这个数组里边每一个元素是个什么?一个对象对一个对象,因为你这个Li里边每一个元素是一个实体类对象,那么它里边也是一个对象,那在接在里边一个对象用什么大括号来表示,大括号里边有什么?每一个属性对每一个属性,属性没有属性值,属性没有属性值就是把它里边的每一个市场活动的知吧属性没有属性属性没有现索他这里边是吧,这个地么这个方它里边有一个元素,将来在这个中号里边就转成一个大括号,属性名,然后呢,属性值是吧?属性名属性值一个一个的,那么它在这里边什么,这个Li里边到底有几个对象呢?这个这个数组里边。对,那看看这个list里边有几个元素,是不是这道吗?它里边查了几个元素,这里边就对应几个大括号,大括号在杰森里边是我们的,那么在杰算里边是数组大括号这个这么中括号是数组,大括号是对象,那我们这个地方把这个list的转换成间森字符串之后,就是这么一个间森字符串,从整体上来看是个数组,数组上每一个元素都是一个对象。
22:24
每一个,那么对象都是一个市场活动的一个对象。把这个市场活动里边,各种水性苗,水性枝都腐嘛,都分装这种大包里边。这时候我们说这么一个层得数就返回到前台了,前台发的异步请求,那这个阶段座就返回阿贾克斯的回调函数,阿贾克斯的回调函数拿到这个,拿到这么一个数组之后,大家怎么办呢?对,那要显示了是吧,那要显示到那个列表,那那显示到列表里边,那就把那个列表下边吧,添加很多的行了,每一个行就是个TR标签,那到底显示几行。
23:07
遍历这个数度每变成一个元素显示一行,每变成个元素显示一行,怎么遍历怎么显示,这些我们按照都是前端的一些基础,都是死的语法吧,我们写一遍大家就会了知吧。总之我把这个过程叫做解析阶算对渲染页面知道。这样的话的话,我们这个流程就涉及了。这个流程解决的问题就是说用户在这搜市场活动,每次键盘弹棋向后台发异步请求,查询那些名字里边含有关键字的市场活动,并且把已经跟当前线索关联过的市场活动排除了,剩余的市场活动全列到列表里边,列到这里边干什么?为下一个流程做准备,下一流程干什么?用户选择要关联的时候,我们一点关联按钮,又一个流程开始啊,所以下一个流程我们一会儿再说,先把第一个流程做了。
24:05
每次去搜市场活动去知道吧,好,这时候我们说这个流程,我们就涉及到了知那编码实现这个流程,大家看我说四层代码从底层写。先写市场活动的map,在这里边加一个方法,这个方法干什么?根据名称模糊查询市场活动,并且把那些跟可录ID关联过的市场活动排除了知道,所以下面我们就写这个方法了。那写这个方法,我们这个地方来,这个地方配一个方法,然后呢,再来写这个在市场活动的map,在这里边加一个方法,这个方法咱们已经设计好了,知道吗?返回值list,因为有可能会查出来多条,因为要根据名称模糊查询去,然后呢,List里边是一个一个的市场活动的实体的对象,然后呢,这个方法名我就直接写了这个地方来一个查询的select for detail by name和ID,根据名称模糊查询市场活动,并且把跟可录ID关联过的市场活动排除,这里边传个参数,这个参数我们说了这个map克。
25:26
String好,来个all接口,然后呢这个地方来个麦知道,然后呢,这个地方我们给他一个注释,这个注释叫做根据啊,这个注释来个叫根据内幕来模糊查询市场活动,并且把已经跟可录ID关联过的市场活动,市场活动,然后呢排除。
26:02
好,这样的话呢,我们这个方法就定义好了,方法定义好下边写这个操数据啊,我们写这个操数句,那写这个操数机在市场文的映射文件里边来写这个操数句了,来写完这个地方查询的搜数句select ID要和方号名一样,把这个方号名拷贝过来,然后呢,写到我们这来知道吗?参数para mid type根据我们的设计是个map,懂吗?那这个地方来个map。然后呢,结果result外就为什么?因为我们将来每返回一条记录,都是以市场中实体的对象的转回。实体的对象属性名和查询自名有可能不一致,所以我们返回伪达麦,然后在这里边写我们错误域去了。那写搜索句来一个查询的搜索句,谁来个,然后呢,From从哪个表里边查,从市场活动这个表里查,查询他的哪些字段,那你看前台需要哪些字段,前台需要哪些字段,需求说了段。
27:10
需求状你查询的时候都会列到这个列表里边,但你看这个列表里边需要哪些字段,首先对第一个大看将来我们一选中谁一点关联,是不是要获取这条市场活动的ID啊,对ID要操作还有谁啊。对吧,Name还有什么开始日期结束期,所有者是不是五个字的,而且所有者关联字是不是查名字关联查询知道吧,所以下边我就直接写了五个字段查询,是让我们五个字段相关字段查名字知道吧,所以我们不可避免的会连接查询,这样的话我来给他起个别名叫A。然后呢,在这地方大家看来查到五个字段就行了,首先一个一个查吧,a.ID然后呢,这个地方家看这个地方a.ID还有谁A点对name还有谁对start date字段A点啊a date还有谁。
28:09
U对U内,这是连接查询了,那所有者不可以为空内连接,内连接来一个对table来一个U,来一个U是么?连接条件啊叫a.o等于U点对ID这边来个优点,Name以哪个字段名义查出来,对on起个边证,这样形。这是我们这个地方去查询市市场活动这个表表查询我们所需要的五个字段都查出来了,下边查询条件,现在你要不加查询条件,那就把所有市场活动的记录这五个字段都查出来了,对我查询的是这些市场活动查询条件根据什么去查对名字模糊查询叫A点内空格来一个模糊查询,Like,这里边来一个什么版面号空格是不是把那个市场上的名字写的啥,那从map里边取那个K,那个K叫什么,到时候你以前你那么你封装时候叫什么,你在这边就就就怎么取就行,那我封装的时候,假如我就叫内,我就叫内知道吧。
29:29
这个K我我将来放我叫这这样吧,叫activityiv内吧,我知道,因为将来往麦克里边放值的时候,你叫什么,你到这用什么取就行,然后呢,这个地方好再加个百分号,这样的话就把那些所有名字里边含有关键字的市场东西都查出来了,下边是不是还得排除,排除怎么传。对and加一个什么,加一个条件,再加一个条件是吧,那就排除,排除根据什么排除,对排除市场活动是不是要根据标识去排除?对排除市场活动根据市场活动的标识a.ID去排除,排除几条记录,对not印是排除一条,如果排除一条记录,你打用not印可不可以也可以,但是还可以,还可以用什么?
30:27
排除一条记录。可要不等号,对不等于哪一个什么ID值不就行了吗?是不是这样子,对不等于你要如果用排除多条记录,是不是用它就不行了,得用谁了?对,弄出你说ID不在,那这个后边是不是得一个什么小括号后边一个一个的已经关联过的市场红的ID,对,那已经关联过的市场红队到底有几个呢?一括号你写一个。
31:00
对,括号里边去查就行了,去查查那些已经关联过的市场文ID就行了,知道吧,在这里边写个什么查是不是得写个骚主域去查,这就是子查询是吧?对子查询我为为了这个so索句更好看是吧?换个行,在这里边再写一个完整的so扰行了,对这个sor义叫子查询select,知道吧?去查那些已经跟这个可录ID关联过的市场活动的ID知道吗?对,从哪个表里边抄?已经关联过的从关联关系表里边抄,是不是这样吗?关联关系是哪个表呢?对这个表吧,这个表从这里边去查,以及查它的哪些字段。录I一个ID,对查市场活动的ID,那个字段是不是这样的,因为要排除我这里边是不是要得到市场活动的ID啊,对要查市场ID,查市场ID叫什么IVID,查这个表里边的这个ID,你这要是查这个表里边所有ID,我要查哪些市场活动的ID呢?Y根据谁去抄可录ID等于谁对等于在这map里边再传了一个另一个ID叫什么刻录ID。
32:25
嗯,这个地方来一个刻录外地。这个地方来个可录ID这情况,这里边是查那些什么已经跟这个线索关联过的市场活动ID。查出来之后,外边查的时候,根据名称模糊查出来了,然后呢,查询呢,不但符合条件,而且什么这里边查我所需要的结果,那些ID不在这里边,不在这里边说明没关联过,是不是这个意思,知道吧,这就是排除。所以这是我们说这个造出去。
33:01
这又用到我们这子查询了,子查询。我们前面说子查询,什么子查询就这叫主查询,那么这叫主查询,整个查询语句里边又包含查询语句,这叫子查询。为什么要主查询子查?因为它两个都可以独立运行是吗?都是一个完整的骚扰句,知道好,这是我们这个关于我们这个这一个骚扰句就行了,这个骚扰句行了,这个慢就行了,这就排除了其实语法的哈,倒是不难,你知道吧,语法都是都是以前学过,就主要是你要你要分析出来怎么为什么要怎么去使用这些语法来解决我们需要的这种问题,知道吗。所以这是一种能力啊。而且是很重要的能力。好,这是我们这样好,那这样的话家我们这个SO1写了,So写完这个map就写完了,然后呢,大家map写完了,下边我们来写个sorry层了,这样个就好办了,在市场活动S加一个方法,这个方法根据名称模糊查询市场活动,并且把跟线索ID关联过的时候我们排除知道吗?所以我们下边来写sorry次数,在市场活动的sorry次数在这里边再加一个骚。
34:24
这个方法返回值list list里边是一个一个的市场活动实际对象,然后呢,在这里边来一个叫que activity for,然呢by name和ID,这里边传个参数,这个参数是个,然后呢,Object,这个是麦。方法定义好了,下边在这里边时间类里边加一个知道吗?这个再加一个这个方法,同样的一个方法,明白吧,那service上方法的实现,然后呢,调map直接调过来,调哪一个方法,咱们刚刚写的那个方法,这个方法叫select activity,别调错了,抓住这个方法越来越多了,这个把这个map成功了。
35:15
这样的话,这个service层也写完了,Service层写完了,下面写CTRL层了,在线索的CTRL里面加一个方法。这个方法就是说根据条件,根据名称模糊查询市场活动,并且把跟可录ID关联过的市场活动排除在这边也得加啊。这都是设计好的CTRL层的方法,Public返回值是什么类型的?对返回阶段组object阶类型。在这边加一个方法,这个方法我就建明之一了,Try activity activity,然呢,For detail by name和可ID这样,然后呢,给他分配一个URL request的买品,我们这个URL不能随便写,要和他处理的资源路径保持一致。
36:06
那他出了资源路径,我们说就是那一个什么明细页面,和明细页面资源路径保持一致,沃克奔驰来一个叫可路下边资源的名称,我就和方晓明保持一致角度,这样就行。那么我们说将来它上一个阶线轴串加一个维斯response斯body,然后在这里边定一个行参来接收客户端常用参数,那客户端传的参数,我们说两个参数,一个是activity ID,一如一个是activity内,一个是可录ID,那么来接收就行了,两个参数IK那个。然后呢,还有一个可录外D,这样就接受了,这样的话大概我们这个方法D了,方法D义好来到这一步了,参数能获取到了,下边封装参数,把这两个参数放到麦里边,下边我们封装参数。
37:06
然后呢封装参数,然后呢根据我们的设计放到map里头,然后呢这个地方来个凹接口,你知道吧,然后呢,该引料类引进了,这样就行了,然后呢在这里边定义一个参数叫map,普等于六一个哈希map,这样就行了,然后呢把参数放到里边点,然后呢po,然后呢一个是activity内放到这里边,然后呢这个地方放这里边,再来一个map叫put,来一个叫可Lu ID,然后呢这个地方来一个可Lu ID,这样就行了,参数封装好了啊。封装好之后,现在来到这一步了,下边调用service方法,去查询市场活动所下边调用service场方法,然后呢,去查询市场活动,知道吧,那调service的方法,这个地方调我们的市场活动的service,那调市场活动service,看市场活动的service我们以前已经注入进来了,直接调就行了。点二叫que activity for detail for和。
38:27
然后呢,把我们封装好的参数卖出传播来这个地方得到一个list list里边是一个一个的市场活动实例对象,叫activity例子。这样的话,大然我们这个数据已经查出来了,查出来之后现在来到这一步了,下边根据查询结果返回这么一个阶层就行,那下边根据查询结果返回相应信息,那如何返回?对,直接把它return自动转成中括号,那么接点,然后呢,Return。
39:11
这样的话,当然我们这个CTRL就行。Oh。这ctl这我们写ctl,这写完了后台就写了,后台写完这边就前台了,前台比较麻烦,前台也比较麻烦,前台大看给阿贾克斯发请求,然后呢,这个地方得拼去了,拼也比较麻烦,这是拼一会儿了,拼一会儿呢,我们一会儿再拼吧,真的休一会儿,休息一会儿,然后呢,把这个钱再拼了一下。就有好,那我们刚才把这个线索关联是啊,我们后台这些代码我们写完了,下边来写前台了啊,下边我来写这个前台,那写前台的话,我们说前台从流程来讲两件事,发请求,处理响应,那我们这个状要什么时候发请求,就这样徐总说了,用户点击关联按钮,一点着关联按钮首先弹出摩擦窗口。
40:02
弹完之后,在这键盘一弹起输输入这种关键字头,键盘一弹起就发起来了,知道吧,所以大家我们要做的事呢,首先把模托方我先弹出了是那怎么弹,用户一点它就弹出来了,弹其实好弹了两件两个两种方式他购属性,呃美工方弹出来了,那我们一般不用它,我们想做你知道这种是吧,一些初始化工作我们自己弹知吧,所以下边我们要首先做的是弹出王大窗口。用户一点这个关联市场活动按钮弹魔上舞,所以我们下边先给它加一个单击事件就行了,一点它先把磨刀口弹出来知道吧。好,下回我们来找这个,找这个按钮,那这个按钮应该在线索的明细页面上,应该在最下边有个关联市场活动这个按钮,就这个就是它,然后呢,这是美工弹出来的,他给属性,我们不用他。我们把这个地方去掉,我们自己加视角知这,然后呢,我们这个地方来个叫棒的知吧,啊关联市场活动I pay,然后呢,这个是八给它加一个单机事件知道,然后呢,我们这个地方来加过来这个地方来一个加过。
41:18
这个地方来给关联市场活动的按钮,关联市场活动按钮添加单击事件,然后呢,首先选中它,拿到它的解块对象,单击事件雷啊。然后呢,他一点那个关联市场的按钮,就会触发这个函数,那我们把代码写到这边,写到这边干上,我们就直接就弹出模态窗口就行,弹出然后线索关联市场的模孔线索关联,然后呢,市场活动啊的模态窗口啊,那弹摩大窗口就比较好弹了,在这个地方直接把它弹出来就行。
42:05
直接选中它啊,拿到这个模大状的结块对象下边掉是减函数点猫的函数,然后呢,弹出来这个地方来一个收入就行了,当然弹之前你可以做一些初始化工作,做什么初始化物,当我们到时候用的时候再说。先把这个摩擦状口弹出来,这样的话当然我们就弹出来了,弹出来我们这个地方就不给他演示了,那弹出来之后,用户在这输入关键字,那他一输入关键字,每次键盘弹起发起图。所以我们下边要做事,是不是给这个输入框加一个键盘弹起时间,对那我们说对,给搜索框添加一个键盘弹起时间,给市场活动搜索框搜索框,然后呢,添加键盘弹起弹起事件。
43:05
谈起事件就这了,那去找那个搜索框去,那个搜索框在哪,在模态窗口里边呢?找找模态窗口,就是这个模态道窗户,它里边有个搜索框,搜索框是谁的,反正就这个好吗?单行面框是吧,给他那么加一个键盘弹起事件行了,那这要加一个键盘,给他一个ID,这个ID你随便起了,我就叫搜索的search,对search activityiv。答应场我敏峰,我一脚拍死他了,或者你叫他也先这样。然后呢,待会我们把它拿到,拿到它的解块对象,加一个键盘盘底时间,选中它拿到它的解块对象,那调视件函数键盘弹起的事件谁对k off,咱们以前学过一个什么K到个键盘按下事件。
44:01
现在是K2,好好加上它就行了,在这我传了一个参数,这个参数本来这个函数那表示当这个元素上面,当也就是说这什么这个元素上面,就是当焦点在这个元素上面的时候,发生键盘弹起视角就会自动触罚这个函数。知道吗?那你说老师,如果焦点不代它上面发生键盘焊接,那那那就不出错知道吧,就发生在它上面,什么代表发怎么发生代表它上,发生在它上面就是光标落在它上面了,说明这个事件发生就发生在他上面,我们把这个什么代码写在这里边就行了,写这边干什么,两件事发请求处理,响应发起,有参数,收集参数,这都是,这都是固定的套路,知道吧。收集什么参数?就那俩参数,一个市场活动的名字,定个变量来保存的activity name这个名字从哪取啊?对,从这个框里边取,那从框里边取,取它的名字其实就是取这个框里边是不是那个Y6属性值啊?那取Y6属性值咋取value对吗?好,好多种方式了是吧?最简单的一种方式是吧?对v.value是吗?This就代表当前正在发生这种事件的这个元素的盗墓对象,获取它Y流属性值,直接点Y6就行了。
45:27
对,这是我们知这样当然你用解剖的对象当然也可以了,那么调调VL就行了,所以这些语法都大家用用了很熟练知所以我们就不给大家再写了,就直接这个最简单的知找一个最简单的就行了。下边还有一个就那个线索的ID知线索线索ID从哪取对这个线索ID是不是就在这个明细页面当前啊,就那明细页面里,明细页边已经有这个线路里边最相应的哪一个对,就那可录对象对可录角ID在作位里边,是不是通过一表格式取啊,但我们说当前在GS代码里边要用E表示必须用到什么对引号里边,你们老师这个单引号双引,单引号双引号都行,就么前端的前端的页,前端的页面技术不区分单引号双引号都是这种,这种什么弱类型的语言?
46:28
啊,我们就用单引号吧,然后呢,作用于点ID取到了啊。这样的话,大概我们参数都注意到,参数收集到,再一个由于是查询的,不用去空格,也不用做表单验证,因为他不会把我们数据里边数据改了,所以一般来讲不去,我不做表,这个是我们自己的数据,更不用管了,所以下边直接有发送请求,根据我们的设计,异步请求Dollar for阿贾克斯这里边传了一个对象,这个对象里边URL表示你要把请求发到哪去。
47:04
对,我们就发到这个地方,我们这CTRL在这个地方。根据名称模糊查询市场活动,然后并且把跟这个线索关联过的市场活动排除了。嗯,哎,这个地方,然后呢,把参数传过去,这一套那一参数那是参数嘛,这个参数参数名参数值,然后呢,这个地方来一个参数名参数值。那这个地方强调一点,这一个参数,这个参数参数名要和对CTRL上边这些行参的名字保持一致,这样你才能接触到啊。好,这然后呢这个地方啊,下边来个tap,然后呢post,这然后呢,这个地方来个data type,然后呢这个地方来个杰森,这样就行了,对下边处理响应,然后呢这个地方反啊。
48:05
在这里边有一个data接收响应信息,这个响应信息就这么一个数组,知道数组里边是一个一个的市场活动的对象。那下边怎么办?对,在这边就便利那个数组是不是往这个里边要拼,要拼一个一行一行的市场活动了,要拼吗。对吧,有几个数度,有几个元素拼几行,那就拼了,下边我们就来变力这个速度,嗯,这是一个贝塔,本身这个速度便利它,那那便利它的时候来显示,那么显示搜索到的,搜索到的市场活动列表,知道吧,变历的话,我们说这是个GS变量,GS变量它不是作用率里边数据便历的时候咋便利啊,对包老符号点each不要用GSTLGSTL是便利作用于里边数据的,知道吧,所以要用它,用它的话,那这个语法我们已经写过很多遍了,两个参数,第一个参数对,你要便利的是哪一个数组,把这数读下来,我们这C塔它本身就是个数组,反的就是那个数组。下边第二个参数翻个去回调函数表示从这里边每拿一个元素。
49:28
直行一变差,我们说在这里边两个,这里边这个函数里边又有两个参步,对一个是下标I或者叫引X,它表示从零开始,依次往后增加,表示变离下边,下边里边还有一个对OB是表示循环变量,从这里边每哪一个元素放这里边,在我们这里方这里边每一个元素,一个市场活动对象放这里边啊在这里边还有一个内置对象是this,表示给它一象,每一个元素,每打一个元素也放到它里边是吧?然后放这里边干什么?执行取这个什么函数体在函数体里边干什么?对,我们对每取一个我们就要执行我们代码拼出来一行就行了,对,那这一行从哪取?对,从这给它复制就行了,这是它啊,然后呢,先把美工写的这些注释掉,然后呢,我们拼出来这么一行。
50:22
对,每拼出来,每变成一个拼这么一行,对,把它们什么,把它们是不是拼到一个字符串里边,对,然后这里边数据都从这里边取啊,那拼一个字符串里边在循环外边定一个大字符串,对余也这个地方字符串名字你随便叫了,我这个叫HTSTL,然后每变你这个一个市场程度都往里边拼拼,那就来一个加,等于这里边用引号括起来知道吧,然后呢,大家这个地方这也都括起来,括起来括起来括起来括起来括起来。
51:03
括起来,然后呢,这些都括起来,括起来括起来括起来括起来括起来括起来,这样起来,当然每一行里边数据从这里边取吧,那从这里边取一个一个来看吧。首先看第一列,第一列大家是一个check boxs吧,那这个check boxs先把里边的双引号转移了,转移了,然后呢,这个地方来转移了,当然我们说这个拆boss,将来我们选中之后一点关联,是不是要拿到这条市场工作ID啊对,要把ID给这个拆包S绑定哪谁的ID obg每次变成这个市场中ID绑定怎么绑定,对加属性是不是这样的加属性由于它是铺的标,这表单组件是不是优先用Y6属性,对Y6属就等这都符合咱们那些。规则,当然你这个这个这个双引号,你可以用单引号,当我说既然是美公司,他用的都是双引号,我们也用双引号,只不过转移一下值从哪取OJ里边取OJ是JS变量,那不能直接往哪边写,得把里边这个字符照隔开它,对隔开它Oj.ID引号,引号又不对啊对。
52:22
They。嗯。这样加起来就行了,好,那里边里边这也是不是好办了,这是市场活动的名字也是从OB里边取,然后呢,那把里边这个区也是隔开,隔开obj第二内幕。开始日期这个地方也是隔开隔开OJ,好像这个双眼这个双引号又不对。这个地方OBJ点二对到的这这一个是结束日期OBG点2N的贝,这个是所有者OBJ第二。
53:26
每变出来一个市场活动拼一行,每变出来拼一行,都拼到这个大字里,变利完都在这里边呢,然后把它显示到这个什么。是不是这个列表能提包在里边去啊,显示到提包里边怎么显示对,给他一个ID,然后这个地方来一个叫tbo,这个ID你随便写啊对,然后呢,这个地方显示到里边,那就是吧,选中它拿到解块对调函数是吧?调哪一个函数HT猫呃判可不可以。
54:03
老胖可不可以,可以不可以。想一想,反正他俩都能显示是,那他俩显示啥区别呀?HTM2是覆盖显示是吧?啊panda是追加显示,那你想这个是覆盖还是追加啊。啊对,追加把上次清了,追加是不是也可以啊对,那你清了的话还得自己清楚是不是直接覆盖,是不是更简单一些,直接覆盖就行,所以我们这个地方覆盖是这个覆盖的话用atl最好,A这些大家用应该差不多,现在什么做到现在差不多用用熟量是吧,这慢慢了。好,这样的话大看便利完都显示网络,每次键盘弹起都会向后台发请求去查,查完之后都示到这条啊这样这样的话,大概我们这个时候这个这个地方也处理完了,这前台也写完了。
55:09
响应信息也处理完,处理完都写完了,那前台后台都写完了,这个流程就写完了。下边我们就可以测一测了,好,这个流程写一个流程,测一个流程,下边来启动服务测一测。
我来说两句