苍穹外卖
快来分享你的内容吧~
- 2023-09-14·Java后端兄弟们,像苍穹外卖这种,黑马把前端都封好了,直接用NGINX打开即可,对前端不懂,这种情况那我们可以修改前端嘛?[流泪]学校毕业设计的要求不高,想把苍穹外卖改改作为毕业设计 项目鱼友0412:用源码在本地跑起来1170分享
- 2023-08-21
刚下班,我把下午那个文字描述用苍穹外卖稍微演示一下
<html> <head></head> <body> <div class="content ql-editor"> <p>然后我就用了一下</p> <p>他的两个表</p> <p>select c.name,d.name as dishName,d.price from category c left join dish d on c.id=d.category_id</p> <p>执行出来是这样的</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1657069588141084673/1fhs8fq0.jpeg"></p> <p>然后我用resultMap将这些压缩成一条嵌套集合的形式</p> <p>即这种</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1657069588141084673/eqopbrac.jpeg"></p> <p>然后看这个total,我这里用了PageHelper插件,然后查出来的是27条,但是如果我们以大集合为单位,实际上它是11条。</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"><span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"code":</span> <span class="ql-token hljs-number">1,</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"msg":</span> <span class="ql-token hljs-keyword">null,</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"data":</span> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"total":</span> <span class="ql-token hljs-number">27,</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"records":</span> <span class="ql-token hljs-punctuation">[</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"name":</span> <span class="ql-token hljs-string">"人气套餐",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishVOS":</span> <span class="ql-token hljs-punctuation">[]</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"name":</span> <span class="ql-token hljs-string">"传统主食",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishVOS":</span> <span class="ql-token hljs-punctuation">[</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"馒头",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"1.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"米饭",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"2.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">}</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">]</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"name":</span> <span class="ql-token hljs-string">"商务套餐",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishVOS":</span> <span class="ql-token hljs-punctuation">[]</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"name":</span> <span class="ql-token hljs-string">"新鲜时蔬",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishVOS":</span> <span class="ql-token hljs-punctuation">[</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"炝炒圆白菜",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"18.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"清炒西兰花",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"18.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"蒜蓉娃娃菜",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"18.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"清炒小油菜",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"18.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">}</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">]</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"name":</span> <span class="ql-token hljs-string">"水煮鱼",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishVOS":</span> <span class="ql-token hljs-punctuation">[</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"蜀味水煮草鱼",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"38.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"经典酸菜鮰鱼",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"66.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"老坛酸菜鱼",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"56.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">}</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">]</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"name":</span> <span class="ql-token hljs-string">"汤类",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishVOS":</span> <span class="ql-token hljs-punctuation">[</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"平菇豆腐汤",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"6.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"鸡蛋汤",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"4.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">}</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">]</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"name":</span> <span class="ql-token hljs-string">"特色烤鱼",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishVOS":</span> <span class="ql-token hljs-punctuation">[]</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"name":</span> <span class="ql-token hljs-string">"特色蒸菜",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishVOS":</span> <span class="ql-token hljs-punctuation">[</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"剁椒鱼头",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"66.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"梅菜扣肉",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"58.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"东坡肘子",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"138.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"清蒸鲈鱼",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"98.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">}</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">]</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"name":</span> <span class="ql-token hljs-string">"蜀味烤鱼",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishVOS":</span> <span class="ql-token hljs-punctuation">[</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"鮰鱼2斤",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"72.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"江团鱼2斤",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"119.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"草鱼2斤",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"68.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">}</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">]</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"name":</span> <span class="ql-token hljs-string">"蜀味牛蛙",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishVOS":</span> <span class="ql-token hljs-punctuation">[</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"馋嘴牛蛙",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"88.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"香锅牛蛙",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"88.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"金汤酸菜牛蛙",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"88.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">}</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">]</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"name":</span> <span class="ql-token hljs-string">"酒水饮料",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishVOS":</span> <span class="ql-token hljs-punctuation">[</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"雪花啤酒",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"4.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"北冰洋",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"4.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">},</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">{</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"dishName":</span> <span class="ql-token hljs-string">"王老吉",</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-attr">"price":</span> <span class="ql-token hljs-string">"6.00"</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">}</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">]</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">}</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">]</span> </div> <div class="ql-code-block"> <span class="ql-token hljs-punctuation">}</span> </div> <div class="ql-code-block"><span class="ql-token hljs-punctuation">}</span> </div> <div class="ql-code-block"><br> </div> </div> <p>数一下上面的name,刚好11个。</p> <p>然后我就用resultMap,修改了一下</p> <p>代码如下</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1657069588141084673/q0qx1xox.jpeg"></p> <p>然后查出来的数据</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1657069588141084673/sbzk5fuq.jpeg"></p> <p>total为11条。</p> <p>但这样有个弊端,就是每个父集合我相当于都开了一个sqlSession去执行sql。</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1657069588141084673/0g6nacrq.jpeg"></p> <p>这样肯定慢。</p> <p>那我问题来了,我在mybatis文档查询貌似只支持多字段</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1657069588141084673/pxymcr2w.jpeg"></p> <p>而不支持集合形式?</p> <p>那这样我就无法在一个池子里面完成这些SQL查询。</p> <p>所以我就想问一下resultMap面对这种问题无解吗?我一下午都在纠结这个问题。</p> <p>ps:我是知道可以不用resultMap的,直接拿到Java里面,分开查询,然后组装数据,效率也很高。或者直接在java里面完成嵌套。但我就是好奇如果用resultMap怎么解决这个问题,算是杠一杠。不用更方便。但我就是想知道resultMap面对这种分页+嵌套集合的数据是否有更高效的方法。求解。</p> </div> </body> </html>
兄弟们,像苍穹外卖这种,黑马把前端都封好了,直接用NGINX打开即可,对前端不懂,这种情况那我们可以修改前端嘛?[流泪]学校毕业设计的要求不高,想把苍穹外卖改改作为毕业设计 项目
#苍穹外卖# 很少在星球发东西,趁着苍穹外卖项目终于要做完了,提前做一个总结吧。给后来者提供一点点经验。小白一个,大佬轻喷。 为什么要做苍穹外卖? 因为刚学完spring,springboot,想找一个简单的项目练练手,学了不用忘得太快了。这个项目也确实适合新手。 涉及了哪些新东西?(仅表示对我来说) 用jwt生曾token校验登录 redis的简单使用 自定义注解 消息拦截器 定时任务 echarts数据统计 报表导出 小程序简单了解 websocket简单使用 非常非常多的增删改查 遇到了哪些问题? 技术上的问题不多,因为很简单,视频也很详细,自己调试一些就能解决。留的作业也都提供了答案,基本都是增删改查。 提供的资料一定要下载,因为里面的视频不是把所有功能都做了一遍,有些跳过的功能,需要你自己看原型图和接口文档补全,然后每天也有作业,需要看资料里的要求自己做。 下单支付那一块,因为要和腾讯的接口对接,所以必须要有营业执照才能按照视频的方式完成功能,没有的话需要自己个性化一下。 下一步的计划; 暂时还没定,可能去做黑马点评了,把redis深入学习一下,目前就想到这些,以后再补充
苍穹外卖有没有简历可写的点推荐呢
#苍穹外卖 提问大佬一个问题,我搜了半天都没找到为啥 没有加@RestController下面注入得对象报错了,加了之后就不报了,这是为啥呢,难道是因为没有@RestController注解,这个controller类就没有交给spring容器管理,也就不能注入spring容器的对象吗
苍穹外卖--全局异常处理类问题求助
<html> <head></head> <body> <div class="content ql-editor"> <p>在写苍穹外卖过程中遇到了问题,是关于全局异常处理类的。</p> <p>视频中p19 完善代码1中,老师直接写了如下的代码就解决了员工增加功能里员工重复的异常</p> <p></p> <p><br></p> <p></p> <p><br></p> <p>一步一步跟着来,可是都没有生效,debug模式下完全没有经过异常处理器就直接抛出异常了,我想看看是不是没扫描到全局异常处理类,但是项目中貌似没有配置类那就是默认扫描启动类的包及其子包的不是吗。谢谢大家,已经卡了两天了一直没有思绪</p> </div> </body> </html>
