前端网址通过nginx访问后端网址(前后网址不一致),有三个好处:
一是提高访问速度,二是进行负载均衡,三是保障后端安全性
用md5加密了密码?
后端使用knife4j调试,用Swagger生成接口文档(代替tomcat),前端使用yapi?
添加员工,并用全局变量接收重复命名异常,获取当前用户id课通过ThreadLocal获取
分页功能,mybatis+pagehelper(返回Page<> 对象),分页的时间格式
状态功能,查找语句?
编辑员工,两个接口,先根据id查询,再更新?
导入分类模块?
获取自动填充(先创注解,调用枚举,写aop,加注解)?
?图片上传码云
?菜品及口味模块,分页查询
菜品删除?
笔记:
Redis是一个基于内存的key-value结构数据库(适用于热点数据)
字符串命令:set key value,get key,setex key seconds value,setnx key value
哈希命令:hset key field value,hget key field,hdel key value,hkeys key,hvals key
列表命令:lpush key values,rpop key,lrange key start stop,llen key
集合命令:sadd key member1 ,smembers key,scard key,sinter key1 key2,sunion key1 key2,srem key member1 member2
有序集合命令:zadd key score1 member1,zrem key member,zrange key start stop withscores,zincrby key increment member
通用命令:keys pattern,del key,exist key,type key
微信登录:controller:由接口文档知其传进来的数据,返回的类型及数据,请求方式,然后根据需求,登录需要返回token,id和user,token由jwt生成,jwt的参数由配置方法注入得到,后通过builders方法写入并返回
service:
spring cache是一个缓存注解,enablecaching开启缓存注解,cacheable将返回值存入缓存,若没用返回值则调用方法获取,cacheput将返回值存入缓存,cacheevict删除缓存
微信支付:首先调用一个预支付接口,并听过许可证,密钥和临时内网ip加密
统计营业额模块:
????????接收始末日期并返回营业额,
????????用到StringUtils的join将集合转为字符串并插入“,”,
? ? ? ? 金额用double类型,若输入给mapper的参数考虑可能为空,可用map封装
????????
????????注意:
????????1,用map封装接收的对象
? ? ? ? 2,订单有可能金额为空,需对map进项判断
统计新增和总用户模块:
????????接收始末日期并返回营业额,
????????用到StringUtils的join将集合转为字符串并插入“,”,
? ? ? ? 用动态条件接收时间,控制动态条件的语句是执行的先后
统计订单模块:
? ? ? ? 用Stream可快速算出集合的总和vaildOrdersCountList.stream().reduce(Integer::sum).get()
? ? ? ? 若不同类型无法强转,可将一个值转
销量top10模块:
? ? ? ? 若mapper 返回的对象有两个则封装一个对象返回
? ? ? ? 可用Stream将对象的方法依次取出并封装到集合
?