00:00
前面我们编写了商品添加功能,接下来呢,我们再来编写s puu管理,这一块呢,就是来查询s puu信息的,只不过我们这稍微有一个复杂检索,在这里可以来选择分类,也可以来选择品牌,包括选择我们商品的,当然状态我们默认呢,刚创建好的商品是新建状态,而且也有上架和下架,那上架和下架呢,这是在我们高级部分,再说包括我们按商品的关键词检索,那先来编写这个功能,参照我们这个接口文档,那po检索呢,就是productp info list,我们在发送请求的时候会多携带上3D分类的ID,品牌的ID,商品的状态,以及我们检索关键字,那有这些信息呢,我们就要进行一个复杂检索,而且这些检索呢都是并且条件。商品的分类是这个下边的,并且品牌是这个,而且状态必须是这个,满足我们这个关键字的,好,我们先来。编写这个功能,我们先F12看一下,如果我现在在这儿来发送请求,我点一个查询,那在这儿呢就会发送请求,请求会携带上我们这些数据,看登lo ID brand ID以及key,还有statuss,那我么接下来就在这对照着来编写,来到我们的商品服务product,我们product呢有一个controller,我们来打开叫product的这个po的controller,这po英好,那就是它product SP info,既然我们这个呢,就叫SP info list请求就是这个,那么就是把原生的这个请求我们来变一下。
01:40
现在我们这个查询呢,就稍微多一些数据了,我们就叫query page by condition,我们是按照条件进行查询,好,我们把这个方法创建出来,还是我们这个分页方法,只不过我们现在多带了一些数据啊,创建出来,那我们这个数据呢。把我们之前的分页方法的整个完整内容,我们直接拿过来,我们之前这个cor page,先把这个复制过来,CTRLC。
02:08
那么这个corry配置呢,只是一个简单的查询,我们主要是要这个corry vaper,好,我们把这个vaper构造到这儿,我们的复杂条件必须写在这儿,把这个挖per放放过来。好,那这个vaper呢,我们就得动态的判断,首先我们来判断,如果说我们的这个里边点get a key,我们有一个叫key,这是检索关键字,它呢不是空的,那我们用string UUS来检查一下这个字段,它不为空,那么就要按照模糊检索。我们先把这个拿出来。好,我们将这个呢来检查一遍,如果它不为空,把这个复制过来,它string u is empty is empty。
03:00
那我们就来要拼装模糊条件,我们把这个变为润,而且呢,我们还有其他条件,我们一并获取来,那么在这呢,还可能会携带brand ID catalog ID以及我们的status这几个状态,好这些呢,我们也来加上。好,我们还要检查其他的几个条件,一个是status,那么这除了检查K,还要检查status这个条件,还有我们的brand ID,我们来也检查一下brand ID,我把这加上双引号好。这检查brand ID,还有我们的catalog ID catalog ID。只要这些条件都不为空,那我们就应该在拼装上这些条件,那我们在这来给它拼装条件,先使用挖per,如果这个不为空,那我们就应该是upper点,当然不管怎么匹配呢,我们先用and连接起来,诶并且并且是什么呢?它里边有很多种这个条件,好,我们把这个W拿过来,那这个挖per点首先我们这个ID。
04:14
必须E口,我们这个条件我们拿过来s po英法,我们这个检索条件可以是商品的ID,好我们ID这一列E口我们指定的值,或者那这些条件呢,要用或者来拼装,或者或者什么呢?我们这儿还有一个将名字必须是我们指定的这个K也行,所以我们在这O一个like,第2LIKE,那like我们这商品有一个名字SP name进行模糊检索,好SP name也是我们的这个值就行,那这是我们的模糊检索条件,那其他的这些条件我们都来拼装上,都是and wrapper。
05:00
点and.and and什么呢?我们这儿还有一个条件就是。我们的status必须是指定的值,所以我们这就应该写status e,当然我们这按的条件呢,我们直接可以进行eo,这是没什么问题的,好,Eo,我们把这一块拿过来,找到我们的这个status,我们这主要有一个publish status,我们这个status呢,必须是等于我们指定的这个值,并且呢,我们的这个如果有品牌ID,我们的品牌ID也必须是指定的值,每个商品我们都保存了品牌ID,品牌ID也必须是这个值,包括我们的这个分类ID worker.eo我们的分类ID拿过来,我们来看这块列名,列名我们叫。看到log ID。把这个拿过来,我们的分类ID放到这儿。那么这一条件呢,就写好了,主要就是这个条件,由于这个条件里边啊,它是一个AOB的关系,这个O呢,不能跟他们直接拼,那要直接拼,有可能就会长成这样,Status等于1AND,我们这拼了一个ID等于1O。
06:18
哦,我们的这个PU-name like什么了,而这个其实是有问题的,也就说如果我们这个PU name like这个是成立的,那前面都不用管status了,所以说我们这个and必须是用一个括号括起来的,这样括起来的,那如果我们是内在的这个内嵌的这个条件,那么就使用这个and加上它的这个箭头函数就行了,相当于这一块拼接的条件就在这个and里边,那么这一块的挖per就构造好了,然后在这进行查询,那我们这个就写好了,来进行return。测试一下我们的这个效果。
07:00
好,我们这启动成功以后,我们来在这儿进行一个测试,我们现在就来检索手机下华为下上架了的商品,当然我们这个status是上架,那肯定是查不到的。所以我们这没数据,而我们是新建状态的,那我们来点击查询这一块也没有内容,我们可以来看一下我们的这个SQ语句,我们的SQL语句在这打印select。SP publish status等于我们指定的值,并且brand ID也是指定的值,Catalog ID也是指定的值。那么这个条件就是对的,只不过这个status呢,这是一个一,那我们这个新建状态它应该是一个零,我们来看一下这个status。我们数据库里边的这个记录,现在status都是零的,好,我把这个给它清除掉,我现在来点击查询,那清除掉是可以查,那我们这个新建状态,我来点查询,那一新建以后呢,这个statuss就变一了,那就是我们这一块的状态嘛,跟数据库的没有对应起来,这是前端页面的问题。
08:07
我们也可以直接来到这一块来修改前端页面,那来到这个PU这一块商品在PU info检索的时候,我们在这来指定新建上架下架状态,主要呢,有一个检索条件,这个检索条件在po里边,这个里边引用了po英fo,我们可以来看一下它引用了这个,然后呢,我们检索条件在这儿,那新建来给它改成012,跟数据库的字段对应起来就行了。好,我们现在来测试一下,如果我们现在是新建状态查询是可以查到数据的,包括我们来进行模糊查询,我们来再来看一下SQL语句,华为我们就叫。华为好,我们点击查询也可以查到数据,包括呢,我们来看一下它的SQL语句这一块,我们select,因这张表我们来看一下它的where ID或什么?Or我们po like,那就是ID是华为或者SP name是华为,那这个条件是在我们这个括号里边的,没问题,And,其他的条件也都是好的,那么这个s po的检索那就写好了。但是这还有一个小细节,我们看到这一块的创建时间,修改时间,这块的时间戳的显示是这个样子的,我们可以在前端来改,但实际上我们希望后台的整个返回值来看一下,这个返回值实际上在这一块的返回值,它这一块就没有返回好,就是这个样子,所以我们希望返回值被格式化了,那我们每一个都要被格式化,我们可以来载。
09:40
整个项目里边做一个调整,在商品服务里边我们只需要修改配置文件,在配置文件里边呢,有一个叫扎克son,我们这个扎克son里边有一个配置是data format spring扎son的data format,我们在给它进行格式化,指定一个格式化字符串,YYYY杠、MM杠、DD,还有我们的HHMMSS,好,我们相当于在这给它指定了格式化的规则,这样以后我们写出的数据,凡是跟时间有关的都是按照这种进行格式化的,我们s spring内置的这个扎克son进行Jason转换,就会按照我们这个规则,好,我们现在来启动测试一下。
10:27
好,我们来看一下,我现在来进行查询。那么现在查到的这个结果呢?时间就是被我们格式化掉的,只需要添加上Jackson这个data format这项配置就行了。那么po的管理就写好了。
我来说两句