00:00
接下来我们来封装s puu的销售属性组合,首先来我们参考页面,这一块的数据应该是怎么来的,我们查的呢是SKU的信息,那我们到底有多少种可供选择的颜色、版本或者内存,我们应该是这么确定的,首先来看当前SKU对应的是什么SKU,我们知道了SKU就知道它旗下到底有多少款SKU,然后呢,我们再来计算这些所有的SKU涉及到的所有的属性以及所有的值,而且我们后来还要做一个功能,我们选中某一种属性值组合以后,我们还要动态的切换到另外一个SQ,那么这一块怎么做呢?好,我还是在这,我们希望呢,有一个我们这个service,比如我们就叫squ的这个cell tr这个service,当然,当它能获取到所有squ的组合属性,Squ celll,我们这个at tr service,好,我们这个就。
01:00
这叫SQ sal at tr value service,我们要做的一件事,我们来往下翻,好来到这,我们希望呢有一个方法就叫get,我们叫的cell at t RS,把我们的puidd按照puidd获取我们所有可能的销售属性组合,那我们来传入我们之前的SQID,然后呢,我们最终要返回这么一个数据,这个数据呢叫我们这个c SQ at TL VO,包括有多少种这个属性的值,那就在这好,我们就希望返回一个list类型的,我们就叫SKU item item,我们就叫cell at t VO是它,然后呢,我们就叫cell at t VO,我们把这个返回来以后呢,接下来我们就将SQ item VO点,我们来set一个我们所有的销售属性组合,我们放在这以后呢,页面就只能直接便利使用。
02:00
了,好们来创建出这个方法,然后呢,我们再来添加上这个方法的实现,那么同样的我们希望呢,直接能有一个do能帮我们来完成这个事儿,那么就直接this.base member,我们拿到这个base member点,我们就希望呢调用我们这个方法base member就是我们这个当前do,好把这个当前do拿来SQL的这个do。我们拿到这个base member以后呢,接下来我们希望呢,他能帮我们来做这个方法,最终能帮我们返回所有的数据,而且大家注意我呢,直接是让do来帮我们来返回我们要用的数据,所以我们又要写一个复杂的色口,好我们这个就叫c at tvs,那最终呢,把它一返回就行了,Return cell at t rvs,好我们还是一样创建出这个方法,然后呢,我们再来生成它的映射,好我们在这。Generate statement来生成它的映射,那它的这个映射呢?我们这个circle该怎么写?我们在这来打开来分析一下我们想要做的事情是这样的,首先我们传入了PU的ID。
03:15
我们现在呢,要做这么几件事情,第一件我们这个分析,咱们这个当前SPU,当前SPU有多少个SKU,然后呢,所有SKU的,所有SKU涉及到的涉及。到达咱们这个属性组合,那好我们先来做第一步,我们看当前SPU有多少个SKU,那我们怎么知道有多少个SKU,我们就在SKU info里边,我们肯定能知道我们SKU对应了多少个SKU。好,我们先来查select,我们现在想要查SKU的ID,我们这个from这张表,比如呢,我们就叫info表from。
04:01
我们给它起个别名,就叫英表,我呢从英佛表里边,我现在只拿一个SQID,我先来确认一下到底有多少种squ,然后呢,V尔条件,那就是英符表里边的squ ID等于我们传过来的值,比如我们现在是13号,好,我们先来看有多少个SKU,走我们一查,反正呢,13号手机SKU呢超多,有这么多,那接下来我们还要看每一个SKU都涉及了哪些属性组合,SKU销售属性的值全在这张表里边存着,好我来打开这张表,这张表里边存了每一个SKU,诶这个SKU对应的这个属性名是什么,值是什么,这个属性名是什么,值是什么,那么现在就要获取,那怎么获取呢?我们就来连接上一张表,好,我来left join。来连上哪张表呢?连上我们squ的销售属性值表,我们就叫s AV这张表,然后呢,我们连接条件就是SV表里边,我们这张表呢有SKUID,这SQID呢,肯定等于我们刚按照squ查出的SKU表里边的这些SQID,所以呢,我们来关联上英法表里边的SID,那总是相同的意义进行相同关联SQID,关联SQID肯定没什么问题,好们来查一下效果走,那要查出来这些数据呢,我们主要还要看它是哪些属性,好我们在这来看一下属性,想要看属性,那么就来s select,这是第一个字段,第二个字段我们从ss AV这张表里边来看一下属性的ID是什么啊,包括这个属性的名字,比如at tr的name是什么,还有我们这个属性的值,我们想看一下,我们也可以来看一下at tr的value是什么,好,我们来看一下。
05:54
咱们的最终结果走,那么现在呢,能看到九号这个SKU,相当于这是SKU呢是九涉及了两个属性,大家能看到一二这两个属性,这两个属性呢,它对应的值是什么?诶就是我们黑色和128G,相当于颜色呢,是黑色版本呢是128G,但我们现在想要获取的是这个样子的数据,来再来看一下我们要返回的数据,我们的数据呢,是这种类型的,是我们哪个属性名对应有多少种值,相当于我们现在要统计分析所有的SKU颜色,有什么颜色,那肯定有黑色白色等等要有这么多,所以呢,我们现在相当于按照属性名要统计出值的,那这个怎么做呢?我们可以这么来做。
06:43
我们现在相当于要分析到底颜色有多少种值,那么可以按照相同的属性给它进行分组,然后呢,看这一组牵扯了多少值,所以呢,我们可以来写上group by,好,我们来给它分组,Group by group by什么呢?我们按照这个属性的ID,因为属性ID呢,能V1区分一个属性,那按照属性ID进行分组,那看它有多少种情况的值,但这种呢,直接来运行肯定是不行的,因为我们这个MYSQL规定,如果我们这呢有分组,那我们这一块想要查询的列,要么在分组这一块有,要么呢,他们就是用分组函数能聚合起来的,所以呢,我们现在就这么来写我这个SQID呢,我先不看了,我放在这儿,然后呢,我按照属性ID分组,我想要看它到底有多少种值,那我就按照属性ID和它的属性名来进行一个分组,好属性ID和属性名,那相当于要查的这两个字段。在分。
07:43
下有了,那这个呢就得处理一下,处理呢,我们用my circleq里边的一个函数,就叫group contact,相当于我们这个组连接,我们只要是同一个分组的,我们把这一行的值都一连接,我们来看一下我们的效果,一看效果大家就懂了,诶我们发现是这样的,颜色有多少种值,版本有多少种纹值,我们就直接连接起来了,但是连接起来呢,大家发现了一个问题,就是这些里边呢,会有重复,比如白色,白色,白色有好多,所以我们可以连接的时候让它去重,This pink,好,我们去一个重以后我们再来走,那么现在就看到我们颜色呢,现在有这么多版本,然后呢,我们这个版本有这么三种取值,这就相当于我们得到了每一个属性对应的属性名,以及它对应的所有可能的值,只不过这个值呢,这是一整行内容,它不是一个list。所以我们在这封装的时。
08:43
哦,我们就可以不用我们这个list来封装了,我就可以这么来写,我们用它,那如果直接用它呢,其实用我们以前的这个at tr也行,但是我要用以前的at tr,我感觉又得改一大堆。我们这个返回的类型,那我们现在就用它吧,好来到我们这个do这一块,那么现在最重要调用的circleq语句,那现在呢,能直接返回我们这个集合了,到底有多少种属性,诶我们这儿都查出来了,那我们现在呢,要来给它封装,那我们就来到这儿把我们这个SQL语句来写好,因为要对应的属性类型分别是这个,那要能正确封装呢,我们最快的方式就可以来起一个别名,所以我们给这三个查出来的东西,我们都起一个别名,第一个叫at t RD,第二个叫at t r name,第三个呢叫at t r y6,我们把这个别名呢查好,而且呢,我们使用驼峰命名法,好,我们这个杠ID这个呢,杠内驼峰命名法呢,它也能自动映射,因为我们这个呢。
09:45
列名是在linuxx下不区分大小写的,所以我们在这儿即使写大写这个别名可能还会有一些问题,好,那在这呢起了一个别名,用驼福命名法,走们来看一下at t t name at t values,我们都有东西,那我们就把这个S口语句拿过来,那相当于分析出了我们当前SPU到底对应了哪些销售属性组合,好我们把这个SQL语句来复制到这,然后呢,我们这一块要接收的就是一个的ID,我就来写一下井号大括号po ID就行了,我们这个方法里边呢,这传了po ID来,我们可以给它标上po这个注解,这样我们取呢,还有提示,我们直接po ID,好,那么现在呢,这一块的内容就查出来了,查出来我们也做一个单元测试,我们看能不能得到我们想要的结果,那们现在呢,来注入我们的这个do,你叫S。
10:45
Ku,我们这个at tr cell tr y6的这个DAO,来看它能不能查出,按照QID查出我们指定的所有销售属性组合,给它去掉,好,我们点一个get c tr,按照po ID,我们13号,好,我们查出的所有东西,我们来让它打印一下,好,我们来返回,返回呢,我们就来让它打印在控制台,我们来看一下销售属性组合对不对,包括呢,为了打印方便,来给它加上to string方法,好,我们在这来启动测试一下。
11:21
走。好,我们来看最终的效果,最终的效果呢在这儿,我们这个颜色它呢是白色,有这一堆属性是这个,然后呢,我们这个销售属性,我们再继续来看我们这个控制台的东西,然后呢,我们相当于13号有两个销售属性,一个是颜色,一个是版本,他们涉及到的值我们这儿呢都有,诶那这就没问题了,那相当于就查到了,那查到以后呢,我们就在这儿来进行组装,好来我们这个方法呢,就正确返回这个方法,返回的数据呢,我们在这就有了,最终我们把这个VO全体一返回,那我们整个呢就能看到结果了,那ctrler调用我们这个方法,那么就有这个唯数据了,页面呢,想要展示,那么就来放到model里边,好model model呢我们就来写一个model.and attribute,我们给请求域中添加一个,我们就叫item,好,Item这是它的详情内容,那详情呢,就是我们这个VO加。
12:23
下来我们就在页面来进行渲染遍历,好,那下一节课呢,我们就来渲染页面。
我来说两句