粉丝7.8万获赞28.9万

接下来咱们继续来看添加购物车,刚才呢咱们是做了一个简单的需求分析还有设计,那接下来呢,就按照我们刚才设计的接口呢来进行代码的开发。好,那现在呢,我们可以再来看一下我们刚才设计的接口。 好,那么大家现在看到的呢,就是添加购物车这个接口,那么我们可以看到咱们设计的这个接口啊,请求方式呢,就是 pose 方式,对吧?然后请求路径呢,就是这一段 got user, got shopping card, go on add, 对吧? 然后呢我们提交过来的参数呢,是不是就这么三个,一个是 d 是 id, 还有个是 set meal id, 还有一个呢就是 disflair, 那返回数据呢,就是这三项 code data 还有 message。 好,那接下来呢,我们就需要根据咱们设计的这个接口啊,来进行代码的开发。那首先呢,我们需要考虑一个事情是什么呢?就是我如何 来接收我们提交过来的这个参数,那么我们一般呢是不是都是通过 d t o 来接收啊?所以说呢,我们需要有一个 d t o, 对吧?那实际上呢,我们在这个初始代码里边呢,已经提供好了这个 d t o, 那么我们直接来看一下就可以了,呃,叫做什么呢?叫做刷拼卡的 d t o, 咱们呢可以来找一下,就是这个, 然后在这个 dto 里边呢,你看是不是对应的就是这么三个属性,一个是 d 是 id, 还一个是 set meal id, 还有一个呢就是 d 是 flare, 那么分别对应的呢,是不是就是我们这三个参数? 好,那接下来呢,我们就直接通过这个 d t o 啊来接收咱们这个数据,那现在咱们开发的呢,其实是购物车模块当中的添加购物车,对吧?那么一般呢,我们每一个模块呢,都会对应一个 ctrl, 所以说呢,我们在这个地方呢,就需要来创建一个商品 cut ctrl, 那么代表的就是购物车模块儿的 controller。 好,那么我们在这儿呢,来创建一下。呃,这个购物车呢,它其实属于我们用户端的操作,对吧?所以说呢,我们就需要在这个 user 这个包儿下边儿来创建。呃,那么我们来创建这么一个叫做 shopping cart controller, 然后呢,我们在这个地方呢,把相应的注解是不是来加一下一个是什么呢? rest ctrl, 然后呢再来一个 request mapping, 对吧?然后呢统一加一个前缀,就是杠 user, 呃,然后呢再把我们这个 shopping card 这个模块名是不是给它追加上, 然后呢就是我们这个 sleep for j, 对吧?把这个日志的这个也加上,然后呢是不是还需要加一个什么呢? a p i 注解在这呢,来一个 tax。 好,那这呢,我们就写这么一个名字啊,就是我们这个 c 端,也就是我们 用户端,对吧? c 端购物车相关接口。好,在这描述一下就可以了。然后呢,我们在这呢,是不是就需要来创建一个方法来处理这次请求啊?也就是添加购物车。那么这次请求 那对应的呢,我们在这呢,是不是就需要来添加这么一个方法? public 返回值呢?是 result, 然后这个地方这个范型我们其实就不用指定了, 因为什么呢?大家来看我们这个地方这个返回数据啊,你看我们是不是只要返回一个扣的就可以了,而这个 data 呢,其实并不是必须的, 因为咱们这个是属于一个新增类的操作,那么操作完成之后啊,我们只要通过一个扣的是不是给前端来返回前端,就知道我们这次操作是成功还是失败,是不就可以了?那一般呢,是不是都是查询类的操作才会使用到这个 data 呀?所以咱们这个地方既然用不到 data 呢, 那么我们这个地方这个范型呢,就可以不写了。呃,然后呢,这个方法名呢,我们就叫 add 就可以了, 那么我们直接返回什么呢? result 点儿 success 就可以,然后在这个地方呢,咱们是不是需要来接收一下我们提交过来的参数,而这参数呢,就是我们刚才看到的这三项,对吧?并且呢,我们刚才也看到了,有一个 dto 是不是就可以封装,所以说呢,我们就直接使用这个叫做 shopping car 的 dto, 那么使用这个 d t o 来接收一下就可以了,同时呢,它还是 jason 格式的数据,对吧?那么从这呢能够看到,所以说呢,我们在这呢是不是需要来加一个什么呢? request body, 对吧?把这个注解呢来加一下, 然后我们在这呢是不是来加一个什么呢?叫做 post mapping, 然后在这个地方呢,来一个杠 a, d, d 跟这边 呢,是不是能够对应上就可以了?就是这一段好重新回到我们这个代码这边,呃,然后呢,在这来加一个什么呢? a p i operation 吧,那么在这呢,我们来写一下这个呢,就是添加购物车,对吧?添加购物车, 那么我们在这儿呢也写一个注释啊,就叫添加购物车,然后呢为了方便我们调试呢,咱们在这儿呢可以记录一下日志,对吧?来个 log 点儿引发, 那具体的日志信息是什么呢?哎,那是就是添加购物车,然后呢商品信息为, 那么咱们在这呢可以来输出一下,直接输出一下这个 d t o 是不是就可以?然后呢我们真正的业务操作呢?咱们是不是一般都会封装到 service 当中,所以咱们在这呢就需要创建一个 shopping car 的 service, 也就是操作咱们这个购物车的业务层接口。好,那么我们在这 来创建一下,那么叫做 shopping cat, shopping cat service, 注意是一个接口啊, 然后在这里边呢,咱们是不是需要来生命一个什么方法呀?是不是应该就是添加购物车的这么一个业务方法呀?那么我们这个地方呢就来一个 void, 那么添加完之后呢,不需要返回结果叫做 add shopping cut, 添加购物车, 然后这个参数呢,咱们是不是就把刚才这个 dto 给它传过来就可以了,也就是我们这个 shopping car 的 dto。 好,那么把这个 dto 对象传进来,那这就是我们添加购物车这个业务方法在这来写一下就可以了,那么具体时间类呢,咱们一会再去写啊,咱们现在呢就直接把这个接口把它注入进来,在这个地方来 private, 然后呢叫做 shopping cart service, 对吧?那么就是我们这个 service 接口来一个 shopping cart service, 然后呢直接通过一个 auto where 的是不是来注入一下?好,那么把这个业务层接口给它注进来,然后我们在这呢是不是就直接调用这个方法就可以了?直接调用这个 add shopping card, 然后呢把这个 dto 对象是不是传进去, 那咱们这个 ctrl 这个方法呢,就已经写完了,对吧?那么非常简单,那接下来呢,我们是不是就需要来编写一个 service 的时间类,对吧?那么通过这个时间类呢具体来处理这次业务, 然后呢我们在这个 i m p l 这个包下边来创建这个实现类啊,就叫做 shopping cut service i m p l 然后呢它是不是需要来实现一下咱们这个 shop 平卡的 service 这个接口啊?然后呢我们需要实现这个方法,这就是我们添加购物车这个业务方法。添加购物车,然后呢先把相应的这个注解呢给它来加一下啊?一个是 service 注解,然后呢再来一个 slow forge, 方便记录日志。 好,那接下来呢,我们就需要在这啊来分析一下咱们这个添加购物车具体的处理逻辑应该是什么呀?那是不是说我们在这就直接构造一个购物车数据,然后呢 insert 把它插入到我们购物车这张表就算完事了呢? 哎,其实并不是这样的,大家可以来看一下我们这个产品原型,通过这个地方呢能够看到,比如说我们当前啊这个购物车里边这个商品,那么他可能有两份,对吧?那对应的体现在咱们购物车这个表里边是两条数据吗? 其实并不是两条数据,因为什么呢?你看我们这个购物车这个表里边是不是有个 number 这个字段呢?代表的是商品的数量,对不对?那也就是说如果是相同的商品, 是不是只需要把它这个数量给它加个一就可以了?比如说原先这个商品就已经在这个购物车里边,那现在呢,我是不是直接把这条数据,它的这个 number 这个字段给它加个一就完事了? 而这个时候呢,实际上我们执行的应该是一个什么样的数据库操作呀?是不是应该是一个 update 的操作呀?那如果说我们这个商品不在这个购物车里边呢?那咱们是不是就需要来执行一个音色的来插入一条数据啊? 所以说啊,我们在这个地方总结一下就是什么呢?当我们添加购物车的时候,首先咱们需要先来判断一下什么呢?就是我们当前添加到购物车的这个商品,它是否 在购物车当中已经存在了?那么如果说已经存在了呢?我们只需要干什么呀?是不是只需要执行一个修改操作,把这个数量给他加个一,那如果是不存在呢?那这个时候我们是不是在执行音色的操作来插入一条数据啊? 那还有一个问题我们需要考虑,就是说啊,我们不同的用户是不是需要有自己的购物车? 那不同的用户有自己的购物车就需要通过哪个字段去体现呢?是不是应该就是咱们这个 user id 这个字段呢? 那也就是说我们在查询购物车当中的商品的时候啊,咱们是不是需要把这个用户的 id 作为条件,是不是去查询?所以说啊,我们这个地方呢,就需要来梳理一下,咱们添加购物车呢,并不是简单的执行一个音色的操作就算完事了。首先呢我们需要来判断什么呢?判断我们 当前加入购物车中的这个商品是否已经存在了?那判断完之后呢?是不是可能就有两种结果?哎,如果已经存在了,那这个时候我们怎么办?是不是只需要将这个数量加一就可以了? 那么还有一种情况呢?那是不是就是不存在?哎,那也就说如果不存在,那这个时候我们怎么办呢?这个时候呢,我们是不是需要来插入一条购物车数据?那接下来呢,我们是不是就需要通过代码的方式啊?把这个逻辑关系给它实现出来。


下面给大家演示一下这个呃网站的哈这个右侧哈啊右边这个板块哈有一个商品分类好在商品分类里面呢列出了本商城的这个所有的商品的分类哈,一共有四个分类名称好了,呃,如果哈我们的这个用户啊只对某一个分类的商品感兴趣,那就直接 点击分类名称进去就行了啊,比如说啊,我想啊买这个球类的商品,然后就点击这个球类啊,点进来之后呢就可以看到啊这个本商城的出售的这个球啊有这三种 啊,那接下来哈我们再来看一下这个网站公告啊,那么这里呢列出了所有的这个啊公告信息啊,点击啊就只有一条啊新品上市。好,接下来我们再来看一下这个啊啊前台系统的啊 其他功能啊,比如说哈我想给网站留言,然后点一之后呢发现他需要我登录对吧?好,如果啊我要查看 我的信息的,要登录啊也是不行的对不对啊,如果我想查看我的购物车呢啊这个订单的话也是 好降价的话呢,那么我是需要有个账号登录之后才能够使用这四个功能对吧,好了,现在呢由于 是啊第一次哈访问这个商城在还没有一个账号怎么办呢,就点击注册按钮啊,那么弹出来一个网上第二框啊,在这个页面上啊,我们来输入注册的信息啊,你说我注册一个新的用户名啊,叫做啊,这个是啊,密码 啊,真实姓名啊,陆小雨啊,收货地址 啊,湖北啊,湖北省武汉市江汉路。 好,今天呢来电话 啊邮箱 啊,这个 a 塔有啊,有杨坤啊, qq 啊,点确定按钮,好,提示注册成功。好,我们把窗口给他关了,好,自动关闭了啊,把注册成功了以后啊,我就用刚才注册的账号和密码来登录 啊,点击登录按钮登录成功了。登录成功以后呢啊,我首先呢啊想给这个哈网站留言啊,点击在线留言啊,此时呢啊,这个页面上啊,我电话里面呢显示了所有的留言信息啊,好了,那么我啊 再发表一个新的留言啊,发表一个新的留言啊,比如说哈这一个,呃,标题啊,就是,哎,商品哈太少了对吧,哎,不够吸引人啊。内容哈,希望啊希望哈,哎,商城 啊,希望商城能够啊,上架更多的商品 啊,现在太少了。好,点击幺零元 好了,发照片成功。好,接下来呢我们看到的哈刚才所发表的留言,对吧,就在这最后这里看到了吧,这是我刚才发表的新留言啊,好了啊,在校留言的功能呢,我们就演示完毕。好,接下来我们再来调一下啊我的这个信息啊,点击我的信息链接 啊,打开了我的信息页面,那么如果刚才注册的时候信息错误了,那么就可以在这个啊页面啊里面去修改好了,比如说啊我的这一个电话改了,那么我们把这个电话啊就修改一下就行了, 对吧?啊,我换号了,那么这个电话呢就要修改是吧,改成我最新的方法好了,点击确定按钮,只是呢修改成功了,对吧?啊,修改信息成功,好,那接下来啊我想买东西了啊,我想买东西了,那么呢这怎么办呢?先点击哈你想买的那个商品,比如说我现在想买一个哑铃, 好,那么我想买两个,把一改成二点击购买按钮,好,此时呢啊我的购物车页面里面呢就有啊一个商品对不对啊。如果说这个商品啊你买错了可以点击这个删除的啊图标把它删掉啊,对不对 啊? ok 啊,现在呢我想继续买,点击这个继续购物。我带上买一部象棋 啊,只买一幅哈。那他的价格我们看一下这个详细详情里面有的哈价格是一百对吧啊产地是中国好数量呢一啊这个我只买一盒就不改了,点击购买按钮。 好,这时候啊我的购物车页面里面呢啊就多了一个商品对吧多了一个象棋。好,此时他们总价是两百二加一百一起是三百二。好了 啊,我想买的东西都买完了啊这个购物车里面啊购物车里面的这两个产品啊,哎都是我需要买的好了那接下来我是不是要去申请订单呢哎对吧啊然后我点击下一步啊点击下一步此时呢啊需要我确认这个订单信息有没有错。好吧 收货人的账号啊就是我刚才登录的账号啊姓名呢就是我刚才的姓名对不对啊就是我注册的姓名然后联系电话呢就是我注册时候的电话啊 啊然后这个呃送货地址啊,地址最多不用变好了啊。付款方式呢?目前本商城只支持货到付款,因为没有直接成支付宝啊没有提成支付宝啊,所以呢啊这个订单信息是没有错的啊,然后我就点击提交第三 此时啊申请了一个啊订单呢提交成功了对吧?啊,恭喜你啊,订单提交成功了啊,提交到哪了呢?订单是提交到这个后台去了啊?啊,提交到后台去了,后面呢我会给大家演示管理员的功能。好吧, 好,那么我的订单升起来之后,接下来呢我们就可以哈直接点击我的订单啊,去查看刚才的那个订单信息,大家可以看到哈,那就是刚才的时间对吧, 然后总金额是三百二啊,没有错的,目前的订单状态是未受理啊,他需要呃管理员在后台受理啊。好吧,好,我们等会讲这个后台功能的时候再说啊,此时呢啊,我想查看一下这个我的订单上面哈有几个订单项啊,来购买了几个东西, 我们就可以查点击这个订单名气好,此时呢他就列出了我的这个订单里面呢一共包含了两样商品对不对?我们刚才买的时候就是买的这两样吗?对吧?啊,没有错的啊,好了, 接下来我们再来哈给大家看一下这个购物车啊,大家想一下啊,由于我的这个订单都已经生成的,那么购物车里面还有东西吗? 没有了吧,对不对啊,购物车是临时存储我购买的商品啊,一旦我哈把这个商品哈提交到订单里面去了以后啊申请的订单提交了之, 然后呢购物车就会被清空,所以我们来看一下,那此时购物车里面是不是就没有任何东西了,对吧,已经被清空了好不好?好, ok 啊,到这里呢,我们的前台模块哈就已经给大家啊演示完毕了,还剩最后一个联系我们,这个呢是指我们哈商城的一个哈信息啊,对吧?啊?你说这个商城是谁哈?联系谁?联系人是他,对吧?还有这个电话等等,好了啊,到这哈我们就把这个前台模块给大家讲解完毕。



好,那么在上节课程中,咱们是不是已经完成了 id 的下载原装啊?那接下来咱们需要怎么样?是不是需要把它用起来啊?那么就带朋友们呢,使用 id 来编写我们的第一个程序啊。那么 id 如何去开发一个程序呢? 你如果想知道这一点的话,你需要知道他的一个整体结构。艾叶的项目结构是这么来分的,他首先要求我们呢必须要建一个工程叫 pos, 有的时候呢,咱们也把这个工程叫什么?叫项目,但是我还是习惯叫工程。好吧, 那么建完工程之后呢,他还需要你建什么呢?模块在工程是整个区域,模块是不是里面的细分的一个区域啊?对,模块建完以后再建什么包包,建完之后再建什么类,而这个类就是咱们的加法是不是程序了?对, 他是严格按照这种软件工程化的方式来管理项目的。那么怎么去理解这四部分呢?好比如说淘宝网站, 他是不是就是一个工程啊?对,那么他的首页是个模块,购物车呢也是个模块,订单是不是也是个模块?模块里面呢又分很多的包包里面是不是可以分很多的类啊?他这么难划分的, 那么我们呢也可以这么来给大家建立一个模型,让大家去理解这些结构。比如说你现在要去建一个建筑工程,那比如说我要做一个小区, 那么这个坡这个的指的就是这个小区的院子,而这个模块指的就是小区里面的每单元,是每单元的,而这个包只是每层楼,明白了吧?而这个类指的是每个是每层的 每个房间呢?嗯,那么真正写代码是不是还在每个房间里面写?对,懂了,这个结构不?懂了,懂了是吧?都没问题了。那么这些结构的话,分的是为了方便管理项目技术和代码文件的,是分门别类的管理啊。 那么我们怎么去建呢?首先是不是应该去建这个工程啊?好,那么工程怎么建呢?进到我们的爱丽儿这个界面来,这是咱们第一次启动进来的界面呢。那我们是点哪按钮,是不是牛棚建的是新建工程呢?点这个加号点一下 好,点完之后呢?到这里来了,是不是让我们新建工程,同学们一定要注意咱们的工程,建议同学们建 applepoty 的建空工程,相对是不是建一个空院子,然后倒入里面,是不是再建模块就好了?对, 记住了没有?记住了,是 mpart pro 借给他,再点击 max。 那么他这个工程呢?其实就是放在哪里呢?就是放在是不是一个一个磁盘路径的?就是放在一个磁盘位置的,那这个路径的话呢?同学们不要去用这种什么 默认路径,默认路径是不是很混乱的,咱们应该单独把它放在一个位置,那朋友们看我的习惯,我是把功能放到哪里呢?我是把它放在我的地盘扣的,是不是专门放代码的位置啊? 是放在这个位置,然后为这个工程取个名字,那这个名字我把它叫什么呢?那咱们呢是入门阶段,咱把它叫加把 s 一。可不可以带一个坡,是不是代表基础班的工程啊? 好,那这个后面呢,其实也要写的就是你第一次见工程他,他这一点他还是没有帮我们做好的,这位置是不是也要写啊?就相当于是工程名是加 打,把 s 一 pro 是放在地盘扣的,是不是这个路径,然后再点击什么非历史,再点击可以的创建,是不是这个工程呢?就这个路径,然后你等一下, 好,等一下之后他就进到这个界面了,这个界面其实就是一个什么是不是一个工程的界面,那么他会弹一些东西出来,咱把它全部怎么样关掉,包括这个地方,是不是让你赶紧建模块啊?对,直接关掉,我们等会再建点取消这样一个干净的工程界面, 有了没有?是不是有了,其他全部关掉,有了没有?有了,而且呢,你要去哪里确认一下呢?比如说你去到这个地盘扣的目录下,你会发现他是不是已经为咱们建的这个工程路径的加 s 一 pro 是点 id 二的,那么回到我们的 id 二有了工程,咱们下午要做什么事情呢 啊? ppt 这边是不是已经为同学们说了,是不是要开始建模块啊?模块叫什么模角,那你应该怎么建呢?你应该在 id 的这个位置找到费尔, 这边是不是有新建的?新建可以再新建工程的,那咱们再新建的是什么模块?是六模景 点到模块之后呢?注意啊,模块一定是建加尔模块了,对不对?你是不是要开始写加尔代码了?然后呢,这边是你要关联的阶梯版本,咱们知道加法乘以是不是要关联阶梯才可以变音和执行的?对,那么这个阶梯版本的话呢,你应该选择的是阶梯十六,那么一般来说这个 id 里面他会自带一个, 如果这里没有这根石头怎么办?你应该点下拉框 a 的接地 k, 知道了吧?然后呢,把你装的这个接地 k 给他,怎么样? 是不是关联过来呀?对,是不是在这个位置点击 ok 就可以把你的 gdk 关联过来了,前提是你这里没有 gdk 十六,如果有,要不要关联?不用,一般来说可以自动找到的啊。那就有了,有了要点击什么?下一步, 然后再为你这个魔法术起个名字。这个魔法我一般习惯从中间取名,大从这边取名也可以从中间取名就行了。那这个魔法名我把它叫什么呢?这是咱们的是不是第一个程序啊?咱把它叫什么? 哈喽,杠 app。 哈喽,刚, app 是不是代表是第一个程序啊?这个 app 代表是 f, 是应用的意思, 哎,不是 k, 这是不是应用的意思啊?然后我们点击什么非利是就可以了,你看上下他是不是都已经有了这个魔化名的?你直接点非利是,那非利是点完之后魔化出来了,没有? 出来了,那这个是他的什么文化名?这个呢, frc 是放什么的?他是写我们的元代码的,元代码就是写我们的加拿大码的。那么在 frc 这个地方写元代码之前呢,我们通常会做件什么事情呢? 我们会先在这个地方建一个什么包,还得建包,包的目的是为了分门别类的管理各种是不是技术啊?就像你的文件夹一样,其实就是什么文件夹。那怎么见包呢?回来我们应该在 sr, 在这个地方又见, 然后另一个派给几,是不是包啊?那么这个包呢?其实有要求,我们一般会选择用公司域名的倒写,比如说咱们公司是三 w 点, it 黑马点看,这是咱们公司的域名呢, 一般是倒过来写包啊,倒过来怎么写呢?就是科目点 it 黑马,然后再点一个技术名称,就不带用三 w, 三 w 他不要的, 明白不?这是一个习惯。那为什么用公司域名呢?这样别人一看就知道哦,这个项目是你们公司开发的,是不是啊?这个一验一,一下就能看到。那这个技术名称呢?比如说我们第一个程序呢?是 hellowordow, 我直接把他叫 哈喽,可不可以?可以,而且大锯啊,苞米,我们建议全部用英文的小写,这样比较规范。全部用英文小写啊,然后直接非历史,这样包是不是建好了,那么接下来我们可以在这个包里面做个什么事情, 是不是右键然后新建一个类啊?那这个类是六克拉斯,那这个类呢?我们把它取名叫什么呢?比如说,哈 哈喽,忘了手这么大写吧,再带不带点加号后缀了?不带,他会自动识别的,不用再带加号后缀了,直接飞逆式, 这样我们一个类建好了没有?建好了,那么用 id 来写的代码有什么好处呢?大注意看。假如说我要写闷方法的话,我可以直接写一个 m a i n 一回车是不是就写好了?假如我要做个输出的话,我 s o ut 一回车是不是就有了? 那我中间要写一个内容,我直接打个双引号,然后中间写个什么内容呢?比如说 hello word 是不是就有了?假如说我写多行,这样的输出在吗?我直接往下靠着地,往下一拉,是不是就有很多了? 他的开发效率高不高?很高,而且如果我的代码写错了,有没有提示?有,你把鼠标移上去,他是 说你这地方是不是缺了一个分号啊?人家提这个非常的清楚啊,包括什么呢?你这个单词你写错了,比如说你把它写成了 out, 是不是也直接报错了?对, 好不好?好,非常好,对吧?那么到这我们其实就已经是不是建完了工程模块包和类啊?接下来咱们要把它怎么样?是编译和直径一下呀,但是需不需要我们自己去编译呢? 其实不需要,你直接右键,然后呢点这个按钮,是不是可以跑起来了?直接软就可以跑了?点一下,那跑完之后呢?他会把结果放到哪里呢? 放在一个控制台展示给你,是不是在这个位置输出自哈罗沃的,那么咱们以后写代表在哪里写了?是不是在这个位置写了?好,这就是专业化的加法开发工具,咱们的 就介绍完了,对吧?好,那么回到我们的 ppt, 那么我们呢就说完了整个的一个创建过程啊,他确实非常的方便。那接下来呢,咱们来做一个总结, id 的结构都是什么样子的? 就他创建代码的结构有哪些要求?先建什么?是不是先建项目?我们是不是可以说是工程的,然后再建什么文化,再建什么包,再建什么类?那么我们的这个工程中可以有什么 多个模块?我这是不是现在只建了几个模块啊?只建了一个,以后是不是可以再建个模块放在下面呢?好,回来 那么魔化中可以创建什么?多个包?那后面我是不是都会去建这个包的,而每个包中可以创建什么多个类就是他 的一个关系啊。那么新建都是哪一操作呢?是不是都是六啊?你六 polo 借给他是不是新建工程的?你看以后咱们新建工程是不是都是打开这个界面的,然后从这里另一个 pos 界的,是不可以新建一个工程的?好,回来 新建模块是利用魔界啊,新建 boss 六拍给你,新建内呢,利用克拉斯。好,关于埃蒂尔的入门程序呢,咱们呢就写完了,同学们呢要赶紧把这个练习一下是吧?这样呢你才能够熟悉。咱们以后呢基本上都是这样的结构来创建加法的程序。

基于抓把外部的商城系统,本系统使用抓把开发,使用 mvc 的设计模式,配合 gsp 技术,数据库存储采用 maspl 系统有用户和管理员两个角色,用户可以登录注册,查看商城介绍、查看商品一览、查看打折专区、 查看销售排行、成交记录、在线留言等。管理员可以管理交易信息、会员信息、商品信息、评价信息、商城信息、留言板信息等。

哈哈哈哈哈, 你打开电视看看多少人,为什么? 哈哈哈哈哈, 勇敢的走下去,我们是不是该自己 觉得那美好? what the? 哈哈哈哈, 打开电视看看多少人为生命在努力,勇敢的走下去。

啊,我先看一下你的简历吧,那我就先简单的做个自我介绍。行,然后我我将今年就是二十五了,然后做开发做了两年,然后之前做的项目呢?就是最近的一个项目,就是给 我开发的一个,呃,解锁和购买文献的一个系统。嗯,他主要是分为一个,就是前台页面的解锁和购物车那一块,然后另外一个就是后台的一个管理员操作的一个平台,大概是这两部分。嗯 嗯,你们这个项目用的基础站还用到哪些?就是很简单,就是,嗯, ssm 加上大波,然后我用的威利斯还有 bs 这些。嗯,好的,那你在这个项目里面主要负责哪一块?嗯,我主要是前台那块的话,就是做 购物车那个模块,嗯,然后还有就是后台系统,就后台管理员系统的一个开发和维护。后台管理系统,对,是吧?后台管理系统主要是负责哪一块啊? 就是后台管理系统最开始的时候呢,就是,呃一些像订单呀,订单处理这一块,嗯,然后还有用户管理这一块,嗯,就后来嘛,因为一些事情就是相当于接手了整个后端系统,就后台系统的一个维护。嗯, 好的,那你说一下你这个就是实现购物车是怎么去实现的?就是我们做的购物车呢?就是他就是分为两个吗?就是第一个就是你未登录,我们也是允许他就是进行一个文献的添加的, 然后这个时候就是基于一个 ccid, 然后和就是我们接收到,然后把你就是临时加的,然后存放到微底色。嗯,像这种就是你没 登录状态的话,我们的呃一个购物车的时效会给的比较短,嗯,可能就是几天的样子,嗯,对。然后还有就是你登录就是登录状态下推荐购物车, 我们就这个就是目前就给你说这个是永久的提高你自己清空购物车。嗯,还有一个就是,呃 会进行一个购物车的一个合并,就你最开始进来的时候没登录吗?嗯,在你中间登录了,然后会在后面把你的购物车进行一个合并,这样避免你之前添加的购物车就是添加的微信不见了,对不对? 嗯,好的,那你这个购置时间我觉得有点问题啊。首先就是你说你是基于阶层压力在没登录的时候,对吧?嗯,那如果哈我们这个阶层压力是有库克里面带的,那如果,呃这个时候用户浏览器端 把库给禁用了呢?这个库这个申请 id 就没有了呀。对,这个也确实,我们开发商也遇到过这种问题。嗯,像这种,因为,呃做这种服务品牌吗?大部分都是跟一些嗯 机构或者高效合作的,然后这种他们我们这边也有那种用户中心吗?嗯,他们会把问题反馈过来,嗯,然后用户中心里面会跟我们进行沟通,嗯,这个时候就是也没有做在代码上的一个优化,可能就是服务平台那边的人跟他们进行了沟通,嗯,就是会提前说,就是不要进入孤品, 嗯,然后页面上呃后期也做了一些提示,嗯,那如果哈要叫你去改善或者去优化一下,这个, 呃你觉得可以从哪效率去考虑优化?对,因为你这个是就是还是要实现未登录的时候一样的 可以去添加购物车。嗯嗯,这样的话我觉得。嗯。如何?就是尝试去获取一下这个用户方,就是当时公众的一个 ip, 嗯,就是根据 ip 来做一些调整 啊,通过 ip 来作为没有登录的时候,对吧?然后最后登录以后再去合并,是吧?嗯嗯。那你这个所有的东西哈都放到瑞丽斯里面, 嗯,如果他不去主动清楚是一直在瑞历史里面占用着内存的,那这个时候瑞历史的内存他是有限的。你们有没有想过有可能,呃,如果哈用户量比较大的话,这个时候会导致一些问题。对,有这个问题,所以目前就是,呃, 然后一个小的集群,嗯,就目前就能说小集群可能是满足的。嗯,包过去的话就是会从大马上进行一个优化,或者是。嗯嗯。那你们这个集群方式,瑞丽斯集群用的是什么方式? 这个,嗯, vdc 极品这个方式,嗯,对,这个不太清楚。不太清楚是吧?只是使用。那你常用的那个瑞迪斯的一些 api 知道吗? 瑞丽是 app 啊。对,就是说你们用瑞丽丝是用接力去去连的吗?用的接力是,是吧?对,那你平常使用的比较多的,关于瑞士里面数据类型使用的那些,麦普用的比较多,麦普用的比较多。对,然后还就是会选一些像那种, 你记得这次我会存在的关于始终那些,嗯,始终那些,对,然后还有就是一些比较,就是在为什么那种一般就会涉及到一些就购物车的一个数量吗?嗯。这个名字。嗯嗯。 看你们这个,比如说你们这个,呃购物车存的数据啊?呃,你们的 k 是以用户的名字去存的,对吧?对,然后这个他的存的值是存的一个对象,是吧? 就是购物车对象,是吧?对,有一个就是有这么一个购物车对象,嗯,然后是直接把这个对象扔进去,然后嗯,替吗?就是根据用户的名字,然后进行一些处理。你们这购物车对象上面包含哪些东西呢?哪些属性? 为我们做文献的吗?就可能就是一个文献的一个集合,嗯,还有你的总条数,嗯,然后还有一些,嗯,像呃一些他的,比如说他就是如果说属于同一本,其他的话,嗯,还会有其他的一些 id, 嗯。 那价格,价格这些呢?购物车的总价啊?对,购物车的总价也会计算到里边,就是出水花的。就是你比如说你一个文献有一个单价,对吧?对,有个总价,这个他是记录,记录单价还是总价还是一起计算出来,还是说我在页面上再去计算这个总价? 是这样的,购物车里边呢?因为文献吗?我们文献是按偏计费的,所以根据就是文献,他会有一个单篇的,就是文献那种文献会有一个计价,然后还有就是你所有天 家的文献的一个总价不被放,嗯,就相当于计算出来,然后统一返回页面,是吧?对。那你们这个呃购物车,比如说有没有涉及到你们这系统搞什么活动?然后这些这个呃 文献哈,他有打折的这种情况,嗯,打折这种活动是没有的,只是说没有。对,根据你就是你用户的类型会有一些相应的折扣。 用户的类型?什么类型呢?就比如说你,是啊,一些普通用户还是一些企业的用户,还是一些什么接口用户或者 vip, 他会根据用户的等级就是一些折扣的一个 总,他只是跟先获取的用户,然后去判断他是属于哪种用户级别,然后再来进行总价的打折,是吧?对,就是在就是下订单 那种时候,或者你在计算的时候,在计算价格的时候会进行一些区分,然后打折这样,嗯,好的。那你们这个项目哈,因为图书这种啊,他的这个 呃数据量其实还是比较大的,那比如说,呃,我们用户要去购买的时候,要去搜索的时候,你们是怎么去?呃,提高这个搜索的效率的? 第一个就是因为这个地方是他是分站的,嗯,对,就是不是说只只是一个网站在做这种,嗯,是有划分不同的服务站,嗯,然后就这样减少了一个, 如果做一些就是,呃 ng 就是一个。嗯,你分站是什么意思呢?分站就相当于他是这些数据哈,他有可能通过 ng 就是返乡代理,然后分发到不同的站上面。对,然后不同的站是有不同的这个数据源的,是吧?不是访问同一个数据就是了,每个每个站点他都有自己的数据库是吧?对,然后定期他会做一个就是数据的一个那种,这个和相当于定期做一个数据的整合,是吧? 那如果要叫你去做一个优化,比如说做搜索方面的优化,你会从哪些方面去考虑呢? 嗯,做一个数据库的优化的话,嗯,就是首先嘛就是会选择一些就是高效率的一些,就是搜索嘛,嗯,然后还有就是做到数据库的一个分离。就读写 这里吗?嗯嗯,这个祖传数据库得都得用起来。嗯,然后这样的话就是呃操作起来就稍微可能会高一点。嗯嗯,你刚刚说 读写分离,呃,你们这个项目做了读写分离吗?做,做了。呃,是用的框架还是自己写的框架去实现这个读写分离呢?这是他们自己写的。自己写的框架 啊,那你知道。嗯,这个如果要去做这个毒气分离哈。嗯,写这个框架,他的大臂的思路是什么样?怎么才能够达到毒气分离? 小姐姐 不太清楚是吧?对,不太清楚。嗯,你可以想一下,就是其实他不论怎么样他去连接数据库都要获取数据库的连接,对吧?那么他去执行相关的操作的时候,我可以判断他是去呃执行什么操作,然后再分配对应的连接给他。我只需要统一管理数据库的。

七天如何做出瑞吉外卖?先看效果,启动服务登录到后台管理。瑞吉外卖一共有五个功能,员工管理、分类管理、菜品管理、套餐管理、订单明细。我们可以对员工进行添加、删除,启动禁用的操作。 分类管理主要是对菜品或者套餐进行操作,还可以自定义添加菜品以及修改菜品的价格、口味等信息。 可以把几个菜和拼成一个套餐,设置好口味、价格以及展示图片。最后可以查看订单的状态以及修改订单派送。还有一个用户端,使用短信验证登录, 我们可以选择喜欢的菜品以及合适的口味,加入到购物车,还可以清空掉所选菜品,最后选择合适的饭菜 进行下单。此外还支持历史订单的查询以及地址的修改,整体逻辑比较简单,没什么太大的技术难点,像这样的大神又迈进一步。