苍穹外卖+git开源

搁置了很久重新开始学        

为了学习方便,苍穹外卖的前后端代码已放至git开源。

源代码-->sky-take-out: 苍穹外卖

git学习-->Git基础使用-CSDN博客

后端接口员工管理和分类管理模块

新增员工

        添加员工表单分析,添加的表单账号、手机号、身份证都是码唯一的,写后端代码时需要校验。登录之后密码为初始密码123456,登录之后自行修改密码。数据提交格式为json,根据/admin和/user来判断请求是谁发出的,employee员工表,字段根据自身需要设置

        如果前端提交的数据和实体类对应的属性相差较大,建议使用DTO来封装数据使用。功能和实体类是一样的,只是DTO封装的属性表少了。

        项目的mvc模式,前端传数据过来,走哪里会有一个路径,而这个路径在项目中的control层,走到control层,这一层又会去调service层(主要写业务逻辑),service调mapper层,mapper(写sql)调数据库获取数据。

/** 新增员工* 响应的数据是json,所以需要加注解@RequestBody* */@PostMapping@ApiOperation("新增员工")public Result save(@RequestBody EmployeeDTO employeeDTO){log.info("新增员工:{}",employeeDTO);employeeService.save(employeeDTO);return Result.success();}

cotronl层调employeeService接口的save方法,save方法需要它的实现类去实现具体操作

/*** 新增员工* @param* @return*/void save(EmployeeDTO employeeDTO);

/*** 新增员工* @param* @return*/@Overridepublic void save(EmployeeDTO employeeDTO) {Employee employee = new Employee();//employee.setName(employeeDTO.getName());// 对象属性拷贝简化代码BeanUtils.copyProperties(employeeDTO,employee);从左往右拷BeanUtils.copyProperties(employeeDTO,employee);//设置账号的状态,默认状态1:正常,0:预定employee.setStatus(StatusConstant.ENABLE);//设置密码,默认:123456,设置成md5加密employee.setPassword(DigestUtils.md5DigestAsHex(PasswordConstant.DEFAULT_PASSWORD.getBytes()));//设置当前记录的创建时间和修改时间employee.setCreateTime(LocalDateTime.now());employee.setUpdateTime(LocalDateTime.now());//设置当前创建人和修改人ID,先写死,后期通过技术实现employee.setCreateUser(10l);employee.setUpdateUser(10l);employeeMapper.insert(employee);}

实现类主要封装了前端传过来的数据,前端传的数据属性和数据库表对应,前端没有的数据通过set去设置之。

/*** 插入员工* @param** @return*/@Insert("insert into employee (name,username,password,phone,sex,id_number,create_time,update_time,create_user,update_user,status)"+"values"+"(#{name},#{username},#{password},#{phone},#{sex},#{idNumber},#{createTime},#{updateTime},#{createUser},#{updateUser},#{status})")void insert(Employee employee);

这里可以通过注解写sql也可以通过xml配置sql

TrheadLocal为每个线程提供一份单独的空间,具有线程的隔离效果,只有在线程内才能获取到对应的值,线程外不能访问。前端的每一次请求都是一次线程访问,线程贯穿用到接口,TrheadLocal三个主要方法:setCurrentId、getCurrentId、removeCurrentId。

问题:如何在service层获取操作者的id?

答:可在过滤器jwttoken中set,当线程走到service层时get即可获取,如下图:

分页查询

首先看需求分析,在接口管理上可以看到需要传上面参数,响应什么参数。

接口网址:YApi Pro-高效、易用、功能强大的可视化接口管理平台

代码直接荡项目看。。

这里时间格式不对,可以通过注解和配置springmvc消息转换器的解决,注解只是局部的,而配置消息转换器是全局的。注解直接在属性头上加上时间格式即可,如下图:

配置需要到配置类下,知识点请看注释,基础不好这里也还不是很明白。

启用禁用员工账号 

看代码把,不想写啦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/265782.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue 核心 数据监听 computed | watch

Vue 核心 数据监听 computed | watch 一、今日学习目标 1.指令补充 指令修饰符v-bind对样式增强的操作v-model应用于其他表单元素 2.computed计算属性 基础语法计算属性vs方法计算属性的完整写法成绩案例 3.watch侦听器 基础写法完整写法 4.综合案例 (演示&…

玩法题材创新的跑酷游戏,广告变现不止带来收益 | TopOn变现干货

跑酷游戏是一类永不落伍的游戏。从远古的红白机到现代的PC、手机,经典作品层出不穷,而提起手机端的跑酷游戏,相信大部分玩家脑海里的第一印象便是《神庙逃亡》和《地铁跑酷》这两款经典游戏,在上蹿下跳、左右挪移间躲避障碍&#…

记一次测试环境git翻车经历

本来想拉一个功能分支进行新的功能开发,合并代码发现没有冲突居然有文件被修改了,贸然选择最近的一次回滚提交,没想到不假思索的push -f 导致一部分dev主干的代码不见了。 事故记录 开发分支origin/dev,功能分支file 合并之后发…

世达教育讲师荣获“年度优秀授课讲师”

世达教育作为受邀嘉宾参加了PeopleCert合作伙伴年会。世达教育优秀讲师Jacky李,荣获年度优秀授课讲师,这不仅仅是对讲师的认可,更是对世达教育的鼓励。 (寇经理与PeopleCert产品副总裁Markus Bause合影) (年…

【数字经济】你必须知道的SABOE数字化转型

【文末送书】今天推荐一本企业管理类前沿书籍《企业架构驱动数字化转型:以架构为中心的端到端转型方法论》 目录 01传统企业数字化转型面临诸多挑战02SABOE数字化转型五环法为企业转型破除迷雾03文末送书 01传统企业数字化转型面临诸多挑战 即将过去的2023年&#…

使用Mockjs模拟(假数据)接口(axios)

一、什么是MockJs Mock.js官网 Mock.wiki.git mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。 二、安装mockjs npm install mockjs 三、 MockJs使用 简单使用: // 使用…

HTML面试题---专题二

文章目录 一、前言二、解释input标签中占位符属性的用途三、如何在 HTML 中设置复选框或单选按钮的默认选中状态?四、表单输入字段中必填属性的用途是什么?五、如何使用 HTML 创建表格?六、解释a标签中目标属性的用途七、如何创建一个点击后会…

小程序嵌套H5

小程序嵌套H5 使用Hbuild x开发H5页面项目里面使用了js-sdk工具包H5发布完成之后生成URL。新建一个小程序空项目,填写小程序的appid。本地调试的时候如果报错无法打开该网页,那么需要勾选先的不校验。发布体验版本需要注意下面的两个配置点。 使用Hbuild…

Java简易版 TCP协议一对一聊天

客户端 package 二十一章;import java.io.*; import java.net.Socket; import java.util.Date; import javax.swing.*;public class Server {private JFrame jf;private JButton jBsend;private JTextArea jTAcontent;private JTextField jText;private JLabel JLcontent;priv…

操作系统内部机制学习

切换线程时需要保存什么 函数需要保存吗?函数在Flash上,不会被破坏,无需保存。函数执行到了哪里?需要保存吗?需要保存。全局变量需要保存吗?全局变量在内存上,无需保存。局部变量需要保存吗&am…

每日一练 | 华为认证真题练习Day146

1、某台路由器OSPFv3接口信息如下,下列说法正确的是?(多选) A. 本接口网络类型为P2P B. 本接口的Router-ID为10.0.6.6 C. 本接口没有建立邻接关系 D. 本接口区域号为1 2、OSPFv3在以下哪种类型网络中需要选举DR? A…

tp5 rewrite nginx重写

tp框架,默认的访问路径是 www.xxxx.com/index.php/admin/shop/index格式的,为了方便和更规范,也看起来有逼格一些,需要将index.php去掉 无index.php就会报404 我这里是宝塔 #地址重写if (!-e $request_filename) {rewrite ^(.*)$ /index.…