苍穹外卖学习Day2

P16 新增员工_需求分析和设计
1.新增员工
前端调教提交过来的数据在这里插入图片描述
注意:当前端提交的数据和实体类中对应的属性差别比较大时,建议使用DTO来封装数据
在这里插入图片描述
当属性名一致时,就可以使用对象的属性拷贝
对象属性拷贝 BeanUtils.copyProperties(源目标,目标).

/-------------------------------------------------------------------------------------------/
存在问题:录入的用户名已存在,抛出异常后没有处理
·······重点······新增员工时,创建人id和修改人id设置为固定值了

1.处理已存在用户名异常
@ExceptionHandler
public Result exceptionHandler(SQLIntegrityConstrainViolationException ex){ //这是用户名存在时所抛出的异常
//Duplicate entry ‘zhangsan’ for key ‘employee.idx_username’ 异常信息
String message = ex.getMessgae(); //接收异常的全部信息
if(message.contains(“Duplicate entry”)){
String[] split = message.split(" ");
String username = split[2]; //获取已经存在的用户名
String msg = username + MessageConstant.ALREADY_EXISTS;
return Result.error(msg); //向前端返回错误提示信息
}else{
return Result.error(MessageConstant.UNKOWN_ERROR);
}
}
}

2.获取当前创建人的id
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解析出登陆员工id后,如何传递给Service的save方法??(重要技术点)
ThreadLocal 并不是一个Thread,而是Thread的局部变量。
ThreadLocal为每个线程提供单独一份存储空间,具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问。
客户端发送的每一次请求都是一个单独的线程。例如第一次请求添加员工时线程45,第二次再次添加员工线程就是其他数字。
在这里插入图片描述
解决方法:在拦截器中解析出当前用户的id后,将id存储到ThreadLocal中。
在这里插入图片描述在这里插入图片描述

在需要该id时使用ThreadLocal.get()方法获取id
在这里插入图片描述

P21 员工分页查询
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
total来源于分页查询 PageHelper插件在这里插入图片描述
问题1:如何对日期格式进行转换处理???
方式1:在属性上加入注解,对日期进行格式化(只能处理单个的一个属性–即加入了注解的属性,其他如需处理得一个一个在加上注解)
在这里插入图片描述
方式2:在WebMvcConfiguration中扩展Spring MVC的消息转换器,同一对日期类型进行格式化处理。(建议使用)(听完了还是有点懵)
在这里插入图片描述

/-------------------------------------------------------------------------------------------------/
启用禁用员工账号
@PathVariable 如果传入的是路径参数,写接口时参数前面需要添加的
在这里插入图片描述
在HTTP请求中,路径参数和查询参数是两种不同的传递方式.

  1. 路径参数(Path Parameters):
    • 传递方式:路径参数是通过URL的路径部分来传递的,通常以/分隔路径段,并使用占位符来表示参数的值。
    • 示例:http://example.com/users/{userId}
    • 在上面的示例中,{userId}是路径参数的占位符,实际的参数值将替换占位符部分。
    • 使用场景:路径参数常用于标识资源或指定资源的唯一标识符,例如获取用户信息、获取特定文章等。
  2. 查询参数(Query Parameters):
    • 传递方式:查询参数是通过URL的查询字符串部分来传递的,以?开头,多个参数之间用&分隔。
    • 示例:http://example.com/users?name=John&age=25
    • 在上面的示例中,nameage是查询参数的名称,John25是对应参数的值。
    • 使用场景:查询参数常用于传递筛选、排序、分页等额外的请求参数,例如搜索用户、排序商品列表等。
      总结:
  • 路径参数用于标识资源或指定唯一标识符,通过URL的路径部分传递。
  • 查询参数用于传递额外的请求参数,通过URL的查询字符串部分传递。

/-----------------------------------------/
编辑员工(本质上对员工信息进行update操作,与上述启用禁用员工状态类似)
编辑员工功能涉及到两个接口:
根据id查询员工信息,返回给前端
在这里插入图片描述

编辑员工信息
在这里插入图片描述

导入分类模块功能代码

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值