实习记录day03:尝试写一个接口

前言:今天突然意识到,实习记录很少有技术性的东西,更多的是自己的心里活动和一些感想,其实这类博客更趋向于日记而非技术记录。也许哪天不再充满兴趣了,这个实习记录也就结束了(想下班了同志们)

实习第三天:

上午9点打卡,我今天8点38就打了,看来明天还是晚起十分钟,多睡一会

上午第一件事问问大哥有没有什么活,大哥给了我一个扩充条件查询的任务:

首先修改后端,找到对应的接口之后从controller-》service-》mapper-》mapper.xml一层一层往下看。看到service的时候我都懵逼了,怎么一个分页查询写了200多行,有这么多的mapper在里面,本着好好学习的理念我先快速浏览了一下代码,果然没看懂.....不过我找到了我需要修改的那个SQL对应的mapper,点进去之后我又傻眼了:一个SQL怎么有200行,join了10个表,不是说阿里公约规定不建议用join连接应该把这个分散在service里吗?不过还好,我的任务不是梳理SQL,我只要找到我新增的那两个内容对应的表的别名,然后往后堆<if>就好了。除此之外,我还需要给dto添加两个我写的额外的内容。至此后端的修改就算完成了。

在前端新增两个视图,这个可把我难住了,我现在能根据请求立刻找到前端的js,根据URL找请求,再根据请求找params。然后想法把数据填进params。那么问题来了,我该去哪找这个html呢,我发现压根没有和js对应名称的html。经过我地毯式搜索半天,最终我放弃了,因为我又想到了另外一个主意:根据页面上的中文div去搜这个页面。然后我发现好多div内的中文都被封装了.....还挺不好搜,不过幸好有个漏网之鱼,估计是后加的,所以我很快就定位在了两个网页,通过实验对比我确定了是哪一个网页,添加上了输入框。照葫芦画瓢添加输入框之后,我又在找怎么把数据放入params,我翻遍了那章JS,却等到一个相关字段,之后我抱着试一试的心态直接发送请求,居然把我添加上的内容携带了,那么按理来说我的任务就算完成了。不过我没有查看数据库的权限,而网页内显示的数据是没有我输入的字段的,就是说我没有测试数据,最后我通过乱输测试了一下,看看能不能查到内容,id那输了个1,成功了,修改到此为止。

因为时间还很充裕(我抱着强烈的好奇心想看看这个分页的service是怎么实现的),我看了那个service的实现,经过我大概半个多小时的梳理,终于明白了他的大概流程:分页订单查询是一个多角色使用的查询,这里的代码将不同角色不同权限耦合在了一起,也就是说,在开始查询的前面必须要抽出来当前查询的用户角色,然后根据角色为query附上更多查询条件以便于过滤内容。在查询出内容后,又要根据不同角色权限去为查询出来的数据添加一些额外的内容然后将他们一并返回。我还注意到了一些特别的内容:1.实现方法的开始,还特意为数据导出提供了一个额外的变量:当使用数据导出功能时,为了防止数据过多导出来直接崩溃,设置了1000条一页的查询,以便于安全实现。2.在商户查询自己旗下的订单时不仅需要根据自己的ID过滤,还需要根据自己当前的地市再加上过滤条件。了解完这个流程之后就已经快到饭点了,我把代码推上去上午的活动也就结束了。

关于git的commit message,我昨天看到了大家的commit message的格式是【姓名】当次内容,而我之前都是只提交了内容(因为经常看游戏修复了XXBUG,所以我也会在提交的时候模仿这种口吻,类似于:修复了XXX,现在他变得更完善了)

中午:恰饭!不过今天的午饭不是很给力,很素很淡很减肥。但是由于我饿了,还是吃了很多....吃完回去的路上遇到了大哥(应该是?),很遗憾的是我没认出来,大哥和我打招呼问我吃了吗我说吃了当时还在好奇这谁?....现在稍微有点困了,我打算先看看leetcode再睡觉,今天写的是leetcode283移动零:两层for循环就可以过,看了大佬的优化只需要一层for循环,有一个非0的计数器:不是0就覆盖计数器的值,计数器++,这样循环结束后,当我们的计数器的下一个值开始一直到最后就都赋0即可。我的腿上被蚊子咬了十几个红包,妈呀,明天开始不穿短裤了,今天已经喷了好几次花露水了,再咬要变成火腿肠了T^T

下午:想咬打火机了

上午代码写错位置了,金箔的怎么那么多长的差不多的代码块。改了半天最终很无奈只能发给大哥,大哥直呼没问题,后面过了半天大哥告诉我是万能解:缓存锅

然后开始下午的任务:大哥让我写一个接口,仿照一个分页查询,写一个分组查询。第一次写接口还是有点小激动的,又仔细阅读了开发者手册:取名get是返回单个数据的,取名find是返回list的,取名query是返回分页的。

之前一直以为是上面不愿意给数据库文件,今天和大哥说我一直是摸黑测试的,大哥交了我平时怎么找sql,先找到yaml这类的配置文件,然后通过里面的jdbc,user,ps等等就可以在自己这链接上数据库啦,后面大哥还告诉我这里面都是测试数据(不过这东西是存在公司的服务器),想咋改咋改。不得不说看着好几十个字段好几十个表,黑压压长长的满是null的库,很难受。

命好名之后我先画了个流程图,然后问大哥,经过多次审批(2次)大哥觉得我的图没问题了,那么我的代码也就没问题了(大概吧,明天才会知道,今天已经没有想测的时间了)配一下模块里没用过的启动类,查查数据库熟悉一下dbaver,弄弄swagger看看jwt不如今天就到这里吧,实习生6点该润还是要润的

相关推荐
天启A5 个月前
微服务集成springsecurity实现认证
springsecurity·软件工程日报