00:00
好,下面来看如何转换到客户备注上一份,那如何转换到客户备注上一份呢?是不是你要便利这个例子了?便利每取出来一个线索的备注,是不是封装一个客户备注的实体类对象?然后客户备注谁的对象里边数据从这个便利里边的线路备注里取。变利出来一个线索备注分成一个客户备注,变论一个线索备注分成一客户备注,那有多个会生成多个客户备注,然后把多个客户备注放到一个list里边,然后调客户备注的micro一下,把这个list是不是批量保存了,就就这个意思,下边我们就准备来做这个事了,那要做这个事的话,封装都是好,封装便利也好,便利封装也好,便利封装是不是主要提供一个map啊,提供map,提供一个客户备注的map,在这里边提供一个方法叫批量保存创建的客户备注,知道吗?所以我们要做第47先提供一个map,叫客户备注的map,知道吗?那客户备注map这个表,客户备注这个表以前从来没操作过。
01:08
现在要通过MY8的逆向工程生成客户备注这个表对应的map层的三,所以通过MY8的逆向工程来生成my body的逆向工程,来我们这个地方改一下这个配置文件。这个配置下改完改了,大家看这个地方来,然后呢,把这个表先注释了线索备注先注释了,然后呢,打开客户备注,客户备注是谁呢看看。对,就这个,然后呢,把它是吧,打开把它打开。生成这个表对应的三模代码就行,然后呢,这个地方来直接运行这样行。好,这样的话,大看客户备注这个表对应的map层的代码就生成了,那生成之后大家我们可以看看,这是客户备注的实体类客户备注的啊,客户备注的map接口,客户备注的映射文件。
02:08
然后呢,在客户备注的map接口里边加一个方法,这个方法就是批量保存创建的客户备注,知道吧,然后呢,这个地方来,那这个方法范位值营养记录条方法名来一个叫insert,然后呢,客户备注叫customer remarkmark,客户备注批量保存by list的将来我们肯定把那些线索备注都一个一个封装成客户备注,放到一个list里边,这里边传一个参数,这个参数是个list list里边是一个一个的客户备注的实体类对象,然后呢,这个地方还有一个list。是吧,然后呢,这个地方该引料的引进了啊,然后呢,这个地方来找过来,然后呢,这个地方来,这个是我们的批量保存,批量保存创建的客户备注,嗯,客户备注好,方法定义好了,下面来提供一个搜L语句,提供搜索语句,这个地方来有搜索语句,然后呢,这个地方来提供。
03:12
添加的错误句in fort ID要和方耳名一样,把这个for耳名拷贝过来,然后呢,放到我们这里边,然后呢,参数排名叫T,是个list,这里边写list里边单条参数的数据类型。那他这个list每一条记录都是一个客户备注的实际的对象。访回值in色的与自动返问一样,结条入不用管了,下边直接写我们的那么S句添加的so句射,然后呢,Into印into啊,往哪个表里边添加,往客户备注表里边添加,他的哪些字段里边添加,这个时候就往他那些所有字段里边添加,这个地方把这些字段拿过来就行了,这个然后呢,大来我们这个地方来把它们拿过来,这些这些字呢,这里边有个either by either time。
04:07
这个时候这俩字段有没有。想一想。抓备注的路。这个备注有人修改过吗?什么时间修改的,需要转过来吗?是不是也需要啊?对,以前谁做的笔记就是谁做笔记,在什么时间修改了就是谁修改了。知吗?就这就这个意思知道吗?所以这个时候as by as time有,因为他这个备注不是新创建的,是从别的什么备注表里边转过来的,所以这个时候可能有,有的话,那这个地方来个有Y有数,然后呢,这个地方,那这里边什么数据都从实体类里边取,哪实体边取比较多,我这个地方来一个替换一下。然呢往这个地方来一个套这种,然后呢,这个地方来替换一下,然后呢,这个地方来全部替换这拷背,然后呢放到我们这里。
05:05
哦。然后呢,这个地方按你说是这样子,然后呢,这里边都来一个ID,然后呢,这里边来波峰面log edit time edit by,然后呢,这个是create time create by。Note com,行,这样的话,大哥这是不是加了一条记录了,我们要批量添加,是不是多条多条,那这边每一条都这个小括号,到底有几个小括号,是不是得变利了,对变历了,那变利了变那个变利那个历史,那变利那个历的,我们这个东西继续来变历,这个东西来变历了便利用的for意是便历,然后呢,这个地方来便利是个集合,那是个什么list集合里边是什么?E term是一个一个的实体类对象放到这里边。那将来从这机合上,每拿一个元素放到这里边,每一个元素都一个这个客户备注的设计对象,然后执行循环题,执行循环题干什么?每循环一个拼这么一个小括,然后这个小括里边数据是不是从obj里边取啊对OB边边取,那就取吧,Obj点然后呢,这个地方大哥OBj.OBj.OBj.OBj.obj点然后呢,这个地方OBj.obj点这。
06:28
然后每变成出一个拼一个小号小罐,小罐之间逗号隔开,最终批量保存了,知道吧。这样的话,我们这个so域就行了,So域行了,这个map就行了,Map行了,大家这个map就行了。第47这个。他写完了,那下边什么继续来写这个service,所以继续改造这个service,哪一个叫线索,叫线索。这个线索的service在这里边,在这里边干什么讲这个事啊,把该线索下所有的备注转换到客户备注表一份。
07:08
知道吧,那转的话大看转之前是不是我得判断一下这个这个线条下有没有备注,先看它是不是空的,是不是这样的判断这个list色是空,如果空的话我就不转啊,不为空的再转是不是这个意思,那判断一个list是否为空,咋判断?对这个地方有个标准的判断方式懂吗?它对如果说不等于什么钠知不等钠是不是有一定有不一定有元素呢?不一定,还得看看什么对,看看里边有没有元素大于零,是不是这个时候这个例色里边一定有什么线索的备注啊,有备注这个时候在这里边我就要转了,这个地方写到这里边吧,这就这看这写到外边也行,写到外边吧,就如果如果如果如果该线索下有备注。
08:09
就有备注就能查出来它不是空的,他也不是空的,List的有元素,那叫什么,把该线的所有的备注转换到客户备边。那就在里边转就行了,在里边转怎么转,是不是要便利这个list的每变成一个线索备注,送上一个客户备注。然道吧,封装好了之后都放到一个例子里边去,那就便利它,便利它这个例子怎么便利啊,对是不是增强到后胸啊对增强了后胸是这啊来便利便利谁线索的备注,然后呢,封装封装什么封装客户备注客户备注啊,然后呢便利增强的否型这吗?便利的是这个离子的前面写一个类型叫可录re马克叫CR,随便定个循环变动,从这里边每拿一个元素放到这里边了,这一个线路为主,然后是不是要生成一个客户备主啊,生成客户为时直接就叫cost。
09:08
Remark,然后呢,这个地方和,然后呢,定个变量去保存它,这个我们叫变量随便起了,我你叫CU啊等于当然这个变量拿到循环体外边。定义效率更高,知道吧,然后呢,这个地方这就行了,然后呢,生成的这个客户备注里边数据是不是从每次变成这个线索备注里边取啊取里边取,那就取吧,这个地方来取,往里边封装就行了,Side说这个备注是由谁创建的,谁创建这个备注。是不是原来这个线索为主谁创建的,生成的这个客户为主也是由谁创建的,对,那取它的谁啊可吧,然后呢,See you.s还有什么可time。是不是还是取叫CR点可维的态,原来在什么时间创建的,它也是在什么时间创建c.set还有什么,诶这个字段很有意思,说你新专的这个客户备注属于哪个客户的,保存一个客户的ID谁呀,对是是不是就属于这个,对这个c.IID知道吗?知道。
10:21
就他啊,然后呢,这个c.get ID,那么将来高级销售人员在看这个客户的信息的时候,能够看到这些备注吧,还有这个地方继续啊CU啊点set,还有什么呢看看。Edit,那么这个什么edit,这个edit by edit by从哪取对c.BY c.BY c.set还有什么I flag,然后呢,c.flag都是从原来那个备注里边取cu.set还有I time c.get time,还有cu.set还有什么ID,这个ID那是不是只能UID了,不是新今天要对UID,然后呢,还有一个c.set还有什么备注的内容,叫CR.get备注的内容,这样的话大家看,每变出来一个线索备注,就生成一个客户备注。
11:21
客户备注内容从线索备注去,那封装好了之后,是不是可以把这次便利出来,这个封装好的这客户被放到一个list子里注,最后批量保存就行了。那一会我这个地方可不可以保存,当然也可以保存了,但你保存你放入数据库的次数多呀,所以放到list里边批量保存,放到哪个list里边,可以创建一个list,这地方来一个list,这个地方来一个叫,里边是customer remark,对,这个地方叫CU。List等于六一个a list这样就行了,然后呢,再看我们说每封装好一个这个客户备注,对CU list忘里边添加了CU就行,这样的话,大家便利完所有的客户这个线索备注都封装成客户备注了。
12:10
都在这个list下边,是不是调用客户备注的map,把这个list一下保存了,对那调用客户备注的map,这个东方来一个来一个叫private,叫customer remark,然后呢,这个地方来一个customermark保存了,叫auto work,然后呢,一点它什么把它什么保存了就行了。这个地方来个第二叫insertmark list,把list保存了。这样的话,大概我们这个已经写完了,这个已经转完了,好吧,这个转完了。后边还有这几个需要抓。再一个转今天转膜了啊,然后我们还是接着做我们这个线索转换这个功能,我们说这个功能是我们这个整个CRM项目里边业务角度来讲的话,是最复杂的一个功能。
13:05
知道啊,他从表结构上面来讲的话,它牵扯到我十几张表,基本上把我们这个线,这个CRM项目的所有的表都操过了,知道吧,像这种业务其实在工作过程当中开发的时候,其实也不多见,就也不多见,就这种像这种业务也不多见,我其我操作一个业务像到十几张表的我不多见,你要是牵扯到这个四五张表或五六张表,其实这是比较常见,但你要操作十几张表其实就不太常见,知道吧?啊,当然我们说不管签到多少张表,那么签扯当什两张表,三张表跟十几张表,其实做法上都是类似道吧,他操作什么表,那么就是把我把这些数据从某一个表导到其他表里边。基本上就这样,但是对我们而言,你要分析这些数据从哪来到哪去。而且你要操作在一个业务中操作的话,你要把这些操作的这些所有的操作放到一个事物中完成,你要保证这些什么数据,这些表的操作的一致性,明白,呃,要么同时成功,要么同时是吧,那就放到一个sorry通话中知道吗?
14:11
这是我们那从具体数据上来讲的话,像我们这个线索转换的话,其实就是说当初级销售人员发现某一个线索有购买意向,那么到底怎么算有购买意向,他们有自己的办公标准,当然这个给我们这个项目里边没体现出来,那他们到时候的话,他们这些这个,呃,这种贸易或销售型的公司,他们内部有一些办公的一些标准,就发现符合哪些特征的时候,哪些条件的时候,说明有购买意向,这个时候他就要转了。初级销售人员就以后就不再负责这个销售的跟这个线索的跟踪了。那么他就要转了,转的话他就等这个操作流程,我们说了,他就说在查看某线索明细的就点他,然后来到线索转行里边需要专业交易,填交易表单。然后呢,填完之后一点转换按钮就转换了吧,那具体这个数据的转换,他这个需求也是给我们确定好的,知道吧,那对于我们这个线索转换的话,就是把线索以及跟线索相关的备注以及关联关系,那么转到相应的高级销售阶段。
15:15
是吧,那那么转到哪?转到客户表里边,以及客户的备注,现这个联系人表以及联系人的备注,以及联系人和市场活动关联关系表,如果需要创建往交易表里面加记录,还需要把这个线索下的备注转换到交易备注表那一份,知道吗?然后转完了之后,把这个线索以及它下边的备注和关联关系都删了,这从这种数据角度上来讲的话,就这样,就这我们具体的这个线索转话是吧,那针对他这种需求,我们上次也给大家设计到这么一个流程,那么这个流程我们基本上这个流程都已经设计好了,知吧,那我们设下编码实现,我们说上次我们仅仅把流程做通了啊,然后又做了一些其他的一些数据的转换,那后边还有一些数据没有转合,那我们今天把它做完就行了是吧。
16:05
好,下面我们来看看还有哪些没有转,上次做到了这个。第应该是第47个是吧,第47个知道吧,应该把这个已经做完了,把这条线索下所有的备注转化到客户备注表中一份,知道吧。转化到备注,客户说他有这个线索生成的客户。那么他下边也应该有一些客户备注,那这些备注从哪来,从这个线索,以前在线索阶段初级销售员做的备注从那里来?所以我们做的时候就是把这个根据线索ID先把这个线索下来,所以在初级阶段做的那些备注先查出来,查出来之后呢,封装的客户备注表。是这些实体类的中封装一份知道吧,那封装一份多条,那封装一个历史,然后调客户备注的map一下,把这些备注保存了,这是我们当上册给大家做到这儿就到这儿啊,先把这个线索下所有的备注查出来。
17:05
然后便利,便利的时候每变成一个线索备注,生成一个客户备注。然后在客户备注的信息从线路备注上去。然后取出来之后放到一个list里边,然后调客户备注的map,把这个list一下保存。这是我们上次要做到这儿了,下面我们继续来做下边这个第48个。把这个线索他下的所有的备注转入到连人备注表一份。那他这个转换方式跟我们前面转客户为主,其实道理是一样的。还是便利这个线索下所有的备注没变了,一个线索备注,然后生成一个联系人备注的实体类对象。然后呢,把多个那么多个联系人备注实际对象放到一个list里边,最后调联系人备注的map一下,把这个联系人备注的list死,然后一下批量保存就行了。
18:00
所以呢,我们要做这个是不是先创建一个联系人备注的麦层的代码。在这边加一个窗法,叫批量保存创建的联系人备注知道吗?所以大家下边我们来做这个这这个,那先写它的map的代码。在联系人备注的map里边加一个方法,批量保存创建的联系人备注给我们以前做客户备注类似的知道吧,所以这样,那联系人备注这个表以前从来没操作过,所以我们要生成联系人备注这个表对应的map层的三模代码就行了,通过map逆向工程来生成这个表对应的三目代码,好,下边我们来设成它就行了,那圣达的话,我们这个地方来继续来,然后呢,通过买八逆向工程,首先生成联系人备注那个表。对应的map层的三模代码,那先把以前的表注释了,以前的是客户备注表注释了。注掉来打开联系人备注那个表,对应的联系人备注那个表,这联系人备注那个表哪一个呢,这是。
19:07
这是联系人那个表,联系人备注表,单看这个表把它打开就行了,生成它对应的map存的三布代码,然后呢,这个地方来把它注射掉,然后呢,这个地方解释来,诶,嗯,然后呢,把下边这个这些都注释掉,知。好,这个表我们表明没动过,直接运行我们my body逆向工程就行了,所以我们这个地方来把它双击运行。好,这样的话,他这个表对应的三模代码我们就生成,生成完了之后,我们这个地方继续来代这个地方继续来生成它的代码,那这个我来看看这个代码,大家看我们现在这些代码量应该是越来越多了,你要是做完这个整个线索转换这些代码就比较多了啊。好,下面我们来看联系人备注这个表,就是这个它的对应的实体类做好,然后呢,联系人备注的map接口,联系人备注的map接口做好。
20:06
联系人备注的映射文件就好。然后呢,我们在这个里边加一个方法就行,这个方法根据我们的分析,应该是保存一个叫批量保存创建的联系人备注知道吧,然后呢,范围值影响记录条数。然后呢,下面写防网膜保存的,那防网膜我们叫inscet保存什么保存联系人备注叫comp,然后呢,Remark啊,批量保存by list,那肯定要做上一个联系人备注对应的实体类,它保存一个list,把这个list传进来就行了,所以这里边有个参数,这个参数是个list list里边是一个一个的联系人备注的涉及对象,然后呢,这个地方来一个list转存。然后呢,我们这个地方该引进累引进了这样情况。然后呢,这个地方来继续了,然后呢,给大家写个注释,这个注释来一个叫批量保存啊,批量保存创建的创建的联系人备注,哎,这个是那个备注批量沟通连起来,配置好,双面建辑好了,在这个映射文件里边加个so句。
21:26
那我们来加这个搜索句这个东西。然后呢,这个地方继续来,在这边加个搜索句,然后呢,保存的搜索句int是,然后呢继续来ID又和方尔名一样,那把这个方尔名拷贝过来,批量保存创建的联系来备注明白吗?然后呢,这个地方来个帕尔me的它参数的类型,那我们这个参数是个list,这出来就写list说单条参数的数据类型。那例子,单条参数每一个元素就有一个连系的备注是计对象,随便考了一个实计对象。
22:03
In色的语句自动访问样就术投入,不用写瑞达map type像直接写目错就行了,那保存的错句in s图往哪个里边保存,往这个联系人备注表里边保存好吧。然后这些字段往哪些字段里边保存,就它这里边儿所有字段。跟我们前面给大家讲的过往客户备注表里保存数据是一样,所以在这里边所有的资料添加二。然后呢,把这个地方拷贝过来,这是所有的字,同样道理,他这些联系人备注这些数据都是转过来的。所以转过来从哪从线索备注表中转过来的?所以这些备注的at the by at the time都有。所以以前在初级销售阶段的时候,这些备注有谁修改了,在什么时间修改了,那说在现在也是有谁修改了,在什么时间修改,所以这个什么这as by as time as flag都有。
23:02
所以这些字段所有字段都有,然后呢,在这个地方来一个Y6,那么这些字段值都从对象里边取。取这些属性去了,那有几个对象,我们有多个为项,它是个list,所以在这边要变利那个list,那便利list来一个叫for意for,然后呢,我们便利的是个list,在这里边写list。然后呢,在这里边有个循环变量里头,我们随便写一个叫OBBG,那么将来他会从这里边每拿一个这个联系人备注的实际对象都放到这里边。复制给这个obg,复制obg干什么?在这里边来执行我们循环体,在循环体这边干什么?要拼一个大字符串,那么每变成一个,先拼一个小字符串,这个小字符上就有一个小括号,小括号里边是干什么的?就是从这个每次变成OB里边取它相应的属性,然后取这些字段的属性。
24:00
那取的话,我们说让这个地方一个一个取得,首先取obj的obj的ID,然后呢,这个地方继续来这样,然后再取OB界顶来一个note count,这。然后呢,这个地方来一个拖峰没,没法,因为取属性的话拖峰没,然后呢再来继续来这个地方来一个OBG点来一个叫create这了,然后呢,这个地方来一个create,然后呢继续来,来一个OBG点叫create,看一个一个去,然后呢再来OGOG点知道吧,还有艾吧。然后呢,继续来取这个地方来个Og.edit看,然后呢,再来取来OBG点叫edit edit by这个什么edit by edit,还有个edit editlo。
25:06
可谓by the time as by as time as thelo,然后呢,还有继续了,再去这个是OBG点,然后呢,还有呢,还有最后一个康泰ID,康泰idd。这样的话,大哥每变出来一个这么一个啊,每变列出来一个联系人备注的实体对象放到这里边,让拼这么一个小括号,然后把这小括号这个字符串都拼成一个大字符框里边,那我这小括号和小括号字用逗号隔开,最终变成完生成一条sol,据增加添加多条记录。这这样的话,那我们这个骚扰域就行了,那么骚扰域行了,这个map也就行了。那这个map写完了,下边我们继续回到这个流程中,当然现在我们说这个转,把线索下所有的备注转到连系来备注表中,这个map已经写完了,Map讲完了,下边我们继续来改造这个service。
26:06
然后改造这个service,我们继续来看这个service方法,那一个是一个线索啊,线索的service来,一个叫线索service继续来。在这里边我们还是这样,同样要便利这个什么线索备注的,历史的,每变成一个线索备注,封装一个联系的备注是对。然后把联系人备注实体对象放到一个联系人备注的一个list里边,然后调联系人备注的map一下保存就行了,但说便利他的话,按理说你那么在下边再变成一个,当然刚才我说当我们再一观察,你看上次我们写的时候变了这个线索备注,每变成一个线索备注,生成一个联系人备注,生成一个客户备注,然后呢,封装好客户备注,放了客户备注的list。知道我们当时便利线索备注的时候,分成一个连这个客户备注,其实大概我们不用再便利了干什么,还是按照这个便利这个线线索备注。
27:04
每变出线的备注,我们可以在这儿既附中一个客户备注。然后分装好之后放到客户备注的绿色里边,我们还可以在这里同时再封装一个联引人备注。你知道吗?就这样便利一次就行了,一次这个线索备注就行了,知道吧,所以大家我们这样,那所以这个注释我们给大家讲一下明白,如果该线路下有备注,那把该线路下所有的备注转换到客户备注上一份,然后呢,同样道理,那这这样我们在变列的时候,还要这还要把把该线索下线索下所有的备注转换到,转换到转换到联系人备注表中。一份干。所以大看我们便利一次就行了,其实然后呢,既封装一个客户备注,下边再封装一个联系人备注,封装好了之后再调联系人备注的买一下,把它保存了就行了,所以我们这个地方再来继续来,然后呢,另一个在这里边再继来,来一个,另一个叫context,叫remark世界对象,然后呢,定一个变量把它保存了,我这个就叫Co知道吗?啊,当然这个名字你随便起了,我起的名字就是这个Co知道。
28:33
当然我们说这个变这个什么变量拿到外边定义效率更高,所以我这个地方拿到外边定义了,这样就行了,然后呢,在这里边这样哈,把它去掉就行了,然后生成这个联系人备注Co,它里边数据肯定也是从每次变成这个线索备注里边取了。然后呢,这个地方我们来给它取就行了,首先要count的ID说生成这个联系人备注属于哪个联系人呢?那这个地方属于哪个联系人呢?
29:07
是不是上面刚刚生任这个联系人啊,对,就是刚刚生联系,所以把这刚刚生任这个联系人的ID写到这。因为这个联系人就是从那个线索转过来的,直接把这ID拿过来已经。然后呢,继续来co2.set,还有什么大家看Y。这个线索有谁创建的?从哪来?对,从线索备注来。在初级销售阶段,谁做的这个备注,那现在还是谁做的这个备注?知道吧,开对吧,然呢还有Co啊,然后呢,点set还有什么可谓的态,那这个地方是不是还是这从这里边来线索这个备注里边来说,以前这个备注在什么时间创建的,那你在这个地方也是在什么时间创建的这样的,然后呢继续来C啊,点set还有什么呢?还有这个地方I怎么办?那同样也是从线索备注里边取。
30:03
就每遍的一个线索备注,把它这些信息都记啊,这个地方edit封装到连你的备注,然后呢,S set进去了,还有再看edit的lo,那C点艾lo,就以前这个备注有人修改过,那么现在也是有人修改过,然后呢c.set还有I的time,那这个地方也是从这个这次变成个线索里边取,线索备注里边取就行了,还有c.set还有什么,还有ID,那这个ID呢,是个UUID,新添加的全部都是UUID,然后呢,C2.s,还有什么这个备注的内容,那他肯定也是从线索备注里边去啊,你就是转那些线索备注,这样的话咱我们就分工好了。封装好联系人备注的对象之后,把它放到联系人备注的一个历史的。然后调map上面把它一下批量保存了就行,所以我们这个地方来生成一个联系人备注的一个list,那我们这个地方来定一个list,这个list里边是一个一个的联系人备注的实体列对象,然后呢,我们定一个变量叫Co list子,然后呢等于六一个叫aray list,这样就行了,然后这样的话,我们每封装一个联系人备注,然后把它放到联系人备注的这个list。
31:28
然后放到这边,那就是I,然后呢,把这个CO2放到这边,每次封装好都放到这。知道网那发装了放完了之后,下边大家看我们这个对象就封装好了这个list,然后下边掉连系人备注的MAP1么。把它一下批量保存了就行了,那那个麦克方法咱们刚才已经写完了,写完之后呢,然后呢,直接调过来就行了,那调完调的时候,那你首先得注入进来联系人备注的map,所以在这个地方注入进来联系人备注的map private来一个叫context,然后呢mark map注入进了,然后呢叫context。
32:13
啊叫contact remark map,然后呢,注入去了,来一个auto work,然后呢,我们来调这个map方法CTRLC拷贝拷贝,然后呢,把它拿过来就行了,把这地方拿来,同样我们也是循环完了再调。前面我们已经批量否决客户的备注,下面再调这个,这个方法也是叫印色的,叫联系人备注,然后呢,BY利把谁把CO2,然后呢list保存,这样的话大看我们这个备注,把该线索下的备注也转化到联系人备注表中,也转一份,知道吗?就说我妈这看吧。
33:00
这样的话呢,我们已经写到这儿来了,写到这儿了,这个把备注都转好了啊。这是我这。现在呢,我们已经写到这几个了,把线索。中,有关公司的信息转到客户表中,有关个人的信息转到联系人表中,又把该线索下所有的备注转化到客户备注表中,也转换到联系人备注表里。好,下边我们继续往下,我看第49个。下边开始该转关联关系了。把该线索下,就把该线索和市场活动的关联关系转换到联系人和市场中的关联关联关系标准再转这个,好,下边我们转转这个,那那我们现在要转的话,首先你得把这个线索和那些市场活动的关联关系得先查出来。说这个线索和哪些市场我都有关联关系,把那些关联关系给查出来,怎么查?这个地方我们前面分析了,根据这个线索的ID,到关联关系表里边去查。
34:08
查什么?就是查查线索和市场活动关联关系,那个relation,那些记录去。看看这个线索和哪些市场活动有关联关系,把那个第三张表里边跟这个线索相关联记录全抄了。那查出来肯定有多个关联关系,那有那么有可能是多条,他肯定查出来是个relation的一个例子。先查出来他那查出来之后便利这个relation离,然后呢,再封装联系人和市场活动管理关系,到时候再转。那首先先查出来,查出来,我这把这句话拷过来了,首先去查询这个地方来去查。然后呢,这个地方继续来,这是前边都是转备注的,下边我们继续来要转关联关系了,转的关联关联首先根据可录ID去查询该线索和市场活动关联关系。
35:02
知道吗?那查的话他得调map,调谁的map。调线索和市场活动关联关系的。那这个map以前从来没写过,知道么?这个地方呢,我们得先写这个map了,在线索和市场活动关联关系的,在线索和市场活动关联关系的map里边加一个方法,这个方法就是根据可落地查询该线索和市场活动关联关系,知那那个map那个表,其实我们以前做线索关联市场活动的时候操作过,懂吗?往那个表里边加过记录,加过记录,加过记录,他的map层的代码已经有了。三呢,实体内卖结果的验文件已经有了,只不过在那个map里边加一个方法就行了,根据可录ID查询该线索和市场络关联关系,所以我们这个地方来找那map就行了,直接找到叫线索和市场活动关联关系的map,线索和市场关联关系就这个表,就这个这个map,在这个map里边加一个方法,这个方法就是根据可录ID来查询线索和市场活动的关联关系。好,下面我们来写这个外表,在这里边加一个方法,那加这个方法,这个方法范围值那一个线索和市场文动关联关系有可能有多条关联关系,所以范围值肯定是个list list的里边那肯定是线索和市场活动关联关系的实体的对象,所以我这个地方直接去查了那线索和市场活动activity关联关系的实习对象知道吧,然后在这里我提供一个方法,这个方法就是查询的方法,Select查询什么查?
36:41
跟线索和市场活动activity关联关系,Relation知道吗?查询它根据什么去查BY对BY,然后呢,可录ID查询这个线索和市场活动的关联关系,就你要转这个线索和它的关联关系,然后在这个传输参数,那这个参数肯定是个可录ID啊,然后呢,我们这个地方来写个注释,这个注释就是这样根据可录ID来查询,查询线索和市场活动的关联关系,知道吗?
37:23
这时我们这样,然后呢,大家看这个方法,我们就定义好了。懂吗?定义好,那定义好之后,下边来写这个骚L句了,在映射文件里边加一个骚扰句,然后呢,这个来骚扰句知道吧。然后呢,这个方来一个select,查询到做数据就select,然后呢,这个地方来一个IDID要和方网名一样,然后呢,把这个方扰名拷贝过来,然后呢放到我们这里是吧,是。然后呢,参数来一个米type,根据可录I去查,那可录ID是个字符串,知道吧,结果result map,为什么让外?因为将来我们每一条关联关系都以实体类对象的形式往外放。
38:09
那实对象的属性名和查询四个名有可能不一致,所以我们返回给map,所以呢,这个地方来拷过来一个map。然后呢,CTRLC把它拷贝过来,拷贝过来之后把它放到我们这里边来这。这样就行了,然后呢,在这里边写我们四十五一就行了。那查询的所有句再来,然后呢,From从哪个表里查,从线索和市场我们关联关系这个查询它的哪些字段,那我们要把它里边的数据转到别的标志包,那就把里边所有字段都在查。而且相关的字段直接查ID就行,因为这次查不是给别人看的。它是传转到别的表里边的,所以相关所直接查D,那直接把它里边这个表所有字段查出来就行,不用连接查询,直接查就行,那直接查的话,那你写个星人也行。
39:05
单位,而且星效率低,你知道吧,把它所有字段列出来,所有的字段,其实它就三个字段,知吧,一个自己的ID,一个是其他两个外键,所以呢,你包含进来这个语句片段,So语句片段也行,你这个地方自己写就行,因为它的字段比较少是吧,那我直接写了自己的ID,其实自己ID我们要它也没什么用,最主要是哪来什么外键,一个是叫clu ID,还有一个叫iiv ID,这样就行了。这样的话,我们就把这个什么所有我们所需要字段都查出来,查出来下边查询条件,根据什么去调可录ID去查,然后根据哪一个可录ID那个参数传可录ID去了,这样的话我们这个sor e就行了。骚扰鱼响了,这个map就响了。Map层写完了,大概我们这个地方第49这个map写完了,下边就要写出侧了,继续来改造这个测层。
40:03
在这个service方法里边再调线索和市场活动关联关系的map,然后呢,查询调查这个方法,根据可录ID查询线索和市场活动管理关系,所以我们直接调过来,在这个地方继续改到这个service,在这里边调就行了,直接去查。那掉的话,你得把那map注入进来。来注入进来,那在这个service里边注入进来线索和市场活动关联关系的埋伏。然后呢,我们这个地方来注入进来叫线索和市场活动activity relation,然后呢直接注入进来,这样就行了,然后呢,在这个里边来注入进了来一个all to world,然后呢我们来调这个map拷贝,然后呢把它放到我们这里边,这样这样。然后呢,在这里边来调一个方法,调哪一个方法,咱们刚刚学的那个方法select叫c activity by ID。
41:03
那这个可录ID咱们前面已经取出来了,就是你要转的那个线索的ID,就是它从外里边已经取出来了。然后呢,传过来,传过来之后这个地方得到一个例子,离子里边是一个一个的线索和适场,我关联关系的实觉对象,然后在这边定一个变量,就了这个变量我不写,那么成了这个变量,我就取这几个单词的首字母线路和市场关互动市场活动关联关系的一个例子,那我这个地方就叫叫C2LIST这样情况。这样的话,大概我们这个已经把这个线索和市场活动关联关系都找来。然后下边怎么办?下边就要把这些关联关系转化到联系人和市场关联关系表中。说你这个线索和哪些市场活动有关联关系,将来有这个线索转化成的联系人,也要和那些市场活动有关联关系,就是这个意思。
42:04
那怎么转?那么将来肯定要便利这个线索和市场关联关系。有一条线头和市场关联关系,封装一个联系人和市场活动关联关系的实际对象。联系人和市场管也是一个表,也是这个表生成它的一个实际对象。然后你那个线路和哪些市场关联关系也是什么,这个联系人也是也要分成一个联系人,市场关联关系,实际力量,然后多个关系分成一个联,联系人和市场活动的relation的一个list,然后调这个表对应的一个map。批量保存着就行了。所以我们就准备这么干了啊,将来我们要便利这个list子,每变了一个线索和市场活管理关系,封装一个联系人和市场活作管理关系实际的对象,然后调联系人和市场活动关联关系的map一样批量保存的就行。所以我们就准备这么干了,那这么做的话,首先这个地方你要写一个map。
43:02
写一个什么样的map叫联系人和市场活动关联关系的map,然后在里边提供一个方法,这个方法叫批量保存联系人和市场活动关联关系。因为我们说这个线的和事,我们可能有多个关联关系,你要分成联系人省,我们关联关系实际地方也可能是多个知道吧,所以这是我们知,所以下边我们就准备。写一个联系人和市场关联关系的一个map了,知道吧,那这个联系人和市场关联关系就这个表,以前从来没操作过,所以我们得首先通过买巴子的逆向工程来生成这个表对应的三模代码。知道吗?好,下边我们来正增拉就行了,那正常它我们还是打开my body的这个逆向工程的这个配置文件。然后呢,先把以前的表注释了。打开联系人和市场活动关联关系那个表,哪个表就是这个表来生成这个表对应的外边走三步,那所以我们把前面注释了,把后边也注释了,就留到这个表就行了。
44:07
然后呢,下边我们通过买八子逆向工程生成这个表对应的三模代码。所以我们这个地方来双击运行。好大哥,那双击运行完了之后,这个表它对应的map层的三分代码就生成了,生成完之后大家我们来看一下,然后呢,首先联系人和市场活动关联关系的实体对象就是他。它里边就有三个属性,因为这个表就有三个字段,自己的主键,还有两个外键,联系人的ID和市场活动的ID。然后呢,大概我们说这样的话,这个实体类有了实体类有了下边map层的map接口,联系人和市场关联关系的map就好。下边映射文件,联系人和市场活动关联关系的实体类,这个这个映射这个这个映射文件这种有了,有了之后,我们在这个基础上开发了下边我们在这个map里边加一个方法,哪一个方法叫批量保存创建的联系人和市场活动的关联关系。
45:07
所以我们来写这个了,那写这个的方,我们说添加的方法范围值影响技术条数,然后呢,下边直接写这个方法名就行了,那写这个方法名添加的知道吧,方法inselt,它将来要执行个inst语句,然后呢在这边添加什么,添加联系人叫contact。和市场活动关联关系批量添加。然后呢,在这里边成个参数,这个参数是个list list里边是一个一个的联系人和市场活动关联关系的视频对象,然后呢,在这里边我们直接写联系人和市场活动,可contact。和社保活动关联关系,Relation,然后这个地方是个历批量保存,然后呢,这个地方来该引进类引进了,然后呢,在这里边写一个注释。
46:07
然后呢,这个地方来给它这个注释,来一个叫批量保存创建的,创建的,然后呢,联系人和市场活动的,市场活动的关联关系,这。好,方法定义好了,在这里边写我们骚数句就行了,下边来写这个搜数句了,那写S骚数句,保存到骚数句in错知,然后呢,这个地方ID要和方网名一样,然后呢把这方网名拷别过了,然后呢放到我们这里边就行了,嗯。参数这个地方来一个per type是个list,这里边要写list里边单条参数的数据类型,那里边单条参数就是一个一个联系人和市场中关联关系的实际对象,知道吧。范围之银色的语句,哎,这个地方。
47:02
自动访问影响记入条数,不用了了,知道吧,然后呢,在这里边写个错数句就行了,那写错数句保存到错数句in s into,往哪个标准保存数据,往联系人和社关联关系标准保存,往他的哪些字段里边保存数据,那他有三个字段,这三个字段都有,一个是自己的主键,还有一个两个外键,一个联系人的叫to,然后呢,ID,还有一个叫艾克配图ID啊。这三个字段,然后下边value这些字段值从哪取?从这个市场活动对象里边取这个,这个是线索和市场这个联系人和市场关联关系,这个对里边取。那从几个对象说取list多个对象,那下边我们要遍历list了。每取一个联系人的这场关联关系,然后呢,我们就加一条记录。
48:03
那变利list这里边是个是list list里边那么来一个,来一个循环变量,这个循环变量list里边是一个一个联系人和社场关联关系的一个对象,然后把它每取一个放到这里,放在里边干什么?执行循环体,执行循环体干什么?要拼一个大字符串。什么样的大字符串,就是一个小括号,一个小括括号的字符串,那每一个小括号里边就是从这个每次这这个对象里边取相应的属性值就行。那就取完这个地方井号大括号OBG点取那个什么ID值第一个字段,然后呢,再取啊叫OBG点是我们的叫context ID这个字段,然后呢,继续来再取叫G点是我们的叫activity ID,知道知道吗?每变了一个联系人和市场工作实际关联关系的实际对象都放到这,放这时候执行循环体执行的时候来拼这么一个小括号。
49:08
然后把这小括号都拼成一个大字,大括号里边就是大字符串,把这些小括号都,这些小字符串都拼成一个大字符串,里边当然小,小括号和小括号之间用逗号隔开来,最终形成大字符串,然后就是一个小括号,一个小,一个小括号对应一条记录,一个小括号对应一条记录。这样就批量保存了联系人和市场活动关联关系,这样的话我们就骚扰影响了。搜后语音响了这个MY就行了。脉层写完了,下边我们继续来写这个。再改造这个特寺。那这个surface里边干什么?就是便利线索和市场我动关理关系,每变成一条,生成一个联系人和市场活动管理关系。当然联系人和市场关联关系表里边数据,然后呢,从现的市场我们关联关系表里边取。
50:01
取完之后把它放到一个list里边,调联系人和社网的关联关系的map批量保存单就行。所以下边我就要便利了,便利这个线索和市场活动管理关系好,下边我们来写找那个service。找这个测位子线索,这个测位子在这里边干什么,就是要遍利这个例子干什么,把把什么把该线索和市场活动的关联关系,然后呢,转换到联系人和市场活动的市场活动的关联关系表中,这样就行了,知道吧,那便利它我们说只要一遍利list,大家就是第一件讲到看这个list里边有没有数据,是不是空的,不是空的它便利,如果是空的压根你就不用编利。
51:02
这样的话判断一下效率更高,你别上来就便利,上来便利他,万一没有里边没有数据,其实你便利的好,除了影响效率也没什么意义,知道吧,那判断list是否为空,我们前面给他家说标准的一个方式,就这叫什么C2LIST,它如果不等于钠啊。也不一定就是空的,知道也不就也不一定里边有数据。再判断什么对S大于零,点S大于,这个时候才能证明这个离子不是一个空离子。它里边是有数据,有数据在这里边便利就行。所以这是我们这种,然后呢,那便利的话,其实便利的方式有很多种啊,反正哪一种都是大家以前学过那些循环,那么那循环的那些语法。那学过循环的语法叫什么?有well do well for,还有两个增强的for什么,这些都行,用一个比较简单的就行了,那我们这个地方作用增强的后循环,当然我说这些循环都有不同的应用场景,所以什么时候用哪个循环,所以大家也要知道,所以以前老师给大家讲Java SE的时候懂么?那些for循环,那几种for循环各自都有各自的应用场景。
52:26
所以你不能说光会语法了,到时候用的时候不知道各个什么语法应用的场景,其实这样这不大好。那些方物循环你都有应用场景,所既然给大家讲了,它肯定都有用到的,但我们这个地方增强的方物循环确实是我们以后用的比较多知这种,因为它比较简单,知道吧,所以下边我们直接便利便利增强的货源我就变流了,那前面定一个循环面料就行了,那这个循环面料是一个一个的叫可录。Activity relation,对象这样起个循环变量的名字,我就叫C了,将来从这里边每获取一个连这个什么线索和市场活动的关联关系。
53:08
对象然后都放到这里,放到这里边干什么?执行循环体,执行循环体干什么?生成一个联系人和市场活动的关联关系这么一个对象,那生成网直接溜就行了,叫联系人,叫context和市场活动关联关系的直接对象,直接这样行,然后呢,定个变量去保存它,好,那这个变量我就直接随便起屏幕了,我就要叫。对。这个什么取首字母不太行,首字母是不是重了,重了你再多取一个字母叫什么Co知道吗?啊,当然我们说他拿到外边定义效率更高,拿到循环循环体外边这样就行。然后呢,这个地方我们就可以了,然后呢,当然这个对象里边的数据都应该从这里边每次变出来,这个线索和市场文管理关系表格取了,那取的话你看取吧,来这往里边分装数据去了,这个地方来个点set。
54:12
Activityd从哪取啊?对,CR取说当时你那个线路和哪些市场有关联关系,那我就取它的activity ID就行。再来一个coar.set set谁呢?还有谁呢?连系ID,这个连系ID从哪取啊?对,上面从这个地方取,刚刚生成这个联系人道,还是那句话,先转赔后转赔,其实有顺序的,知吧,先转联被依赖的数据,联系人有了,然后再往这个联系人里边加记录,知道吗?去他的ID就行,联系人加备注,知道吗?然后再来一个coar.s还有ID,当然新创建的ID都是UID,这样就行。这样的话,每变成一个连线索和市场活动管理关系,就生成一个联系人和市场活动管理关系。
55:08
然后把它放到一个list里边,一会儿调一个map,嗯,调一个map批量保存就行了,那放个色,在这里边定义一个list,这个list来一个list,这里边是一个一个的联系人和市场关联关系,联系人是什么?然后在这边来定一个变量,这个变量来一个叫Co a2粒子等于什么?例子等于六一个A粒子。这样就行,然后每生成一个联系人和市场活动管理关系都放到这个list里保存了。Co边。这样就行。这样的话,咱便利完都生成了一个一个的联系人和市场管理关系。就说当时你那个线索和哪些市场工有关的关系,现在有他转换成联系人,这个联系人也和那些市场工作有关的关系。
56:05
然后都放在这个下边,调map方法,把它批量保存上去了,调谁的map,调调联系人和市场活动关联关系的map,那个map咱们刚刚写完,所以把它复入进来就行了。住在那个联系人和市场活动关联关系的map,然后呢,这个地方再住叫联系人叫contact和市场活动埃配关联关系的map,联系人和市场活动关联关系的门,然后呢,这个地方来注入进来他就行,然后呢直接调这个map。然后呢,这个地方再调过来。调调哪一个方法,咱们刚刚写的那个方法叫insert,联系人和市场,我们关联关系by list,然后把这个car list保存。这样的话,大家这个联系人和市场活动管理关系也转化了。
57:01
转完了,现在已经写到这了,第50个都已经写完了啊。这是我们这样。
我来说两句