菜品相关操作
问题分析业务表中有公共字段 序号 字段名 含义 数据类型 操作类型 1 creat_time 创建时间 datetime insert 2 creat_user 创建人id bigint insert 3 update_time 修改人id datetime insert/update 4 update_user 修改人id bigint insert/update 实现思路 自定义注解AutoFill(标识一下哪些方法需要处理),用于标识需要进行公共字段自动填充的方法 自定义切面类 AutoFillAspect ,统一拦截加入了AutoFill注解的方法,通过反射为公共字段赋值 在Mapper 的方法上加上 AutoFill注解 技术点: 枚举 注解 AOP 反射 Spring AOP...
员工分页查询和启用禁用操作
需求分析业务规则 根据页码展示员工信息 每页展示10条数据 分页查询时可以根据需要输入员工姓名进行查询 代码开发 根据分页查询的接口设计对应的DTO设计 EmployeePageQueryDTO.class1234567891011121314151617181920package com.sky.dto;import lombok.Data;import java.io.Serializable;@Datapublic class EmployeePageQueryDTO implements Serializable { //员工姓名 private String name; //页码 private int page; //每页显示记录数 private int pageSize;} 后面的所有分页查询都统一封装为 PageResult 对象1234567891011121314151617181920212223package com.sky.result;import...
新增员工功能介绍
需求分析和设计产品原型 字段名称 输入要求 提示信息 账号 必填,唯一 账号必须是唯一的 员工姓名 必填 请输入员工姓名 手机号 必填,合法11位手机号 手机号为合法的11位手机号码 性别 必选 男 / 女 身份证号 可选,合法18位身份证号码 身份证号为合法的18位身份证号码 接口设计本项目约定 管理端发出的请求,统一使用/admin作为前缀 用户端发出的请求,统一使用/user作为前缀 代码开发根据新员工接口设计对应的DTO: ⚠️ 注意:当前端提交的数据和实体中对应的属性差别比较大时,建议使用DTO来封装数据 在EmployeeController.java 12345678910111213/** * 新增员工 * 因为提交过来的employeeDTO是json格式 所以要添加 @RequestBody * @param employeeDTO * @return */ @PostMapping @ApiOperation(value =...
Swagger生成接口文档
Swagger可以帮助后端生成接口文档,并且可以进行接口测试。使用Swagger你只需要按照它的规范去定义接口及相关的信息,就可以做到生成接口文档,以及在线接口调试页面。官网knife4j是为JAVA MVC 框架集成的Swagger生成Api文档的增强 解决方案 导入knife4j的maven坐标12345<dependency> <grouold>com.github.xiaoymin</grouold> <artifactld>knife4j-spring-boot-starter</artifactld> <version>3.0.2</version></dependency> 在配置类中加入kinfe4j的相关配置(WebMvcConfiguration)123456789101112131415161718@Bean public Docket docket() { ...
字典树
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182class Solution { /*分析 1.要用字典树 可以查前缀是否存在这个前缀 2.回溯来探四个方向 */ boolean[][] bl; Set<String> set = new HashSet<>(); int[][] xy=new int[][]{{1,0},{-1,0},{0,1},{0,-1}}; public List<String> findWords(char[][] board, String[] words) { Trie...
Java中的Deque(双端队列)详解
Deque概述Deque(全称Double-Ended Queue,双端队列)是一种允许在队列两端(头部和尾部)高效插入和删除元素的线性数据结构。与普通队列(FIFO)不同,Deque既支持FIFO操作(队尾插入、队头删除),也支持LIFO操作(栈行为:队头插入和删除),因此可同时作为队列和栈使用。 核心特性: 在队列的头部和尾部均可执行插入(add/offer)和删除(remove/poll)操作。 插入和删除操作的时间复杂度通常为O(1)(取决于具体实现)。 线程安全版本需通过Collections.synchronizedDeque包装或使用并发容器(如LinkedBlockingDeque)。 Deque的接口定义(Java中的Deque)Java中的Deque接口继承自Queue<E>,定义在java.util包中。主要方法分为四类:头部操作、尾部操作、访问操作和批量操作。 核心方法分类 操作类型 头部操作(Head) 尾部操作(Tail) 插入 void addFirst(E...
复习题
动态规划五步 问题 解决 下标/数组的含义 一般是容量 递推公式 找规律 初始化 看条件 遍历数组 2层for循环要注意谁在外 打印数组 查错 当时做的时候,有点问题 整数拆分给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。返回 你可以获得的最大乘积 。示例 1: 输入: n = 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2: 输入: n = 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。 解一个整数怎么拆才能乘积最大 比如 3 -> 2|1 21=2 4-> 2|2 22=4遍历一个一个的拆 将一个数先拆成 1 和 n-1 再试试 2 和 n-2dp[i]=Math.max(Math.max(j*(i-j),j*dp[i-j]),dp[i]) 123456789101112131415161718class...
我能赢吗
具体题目 问题描述在 “100 game” 这个游戏中,两名玩家轮流选择从 1 到 10 的任意整数,累计整数和,先使得累计整数和达到或超过 100 的玩家,即为胜者。 如果我们将游戏规则改为 “玩家不能重复使用整数” 呢? 例如,两个玩家可以轮流从公共整数池中抽取从 1 到 15 的整数(不放回),直到累计整数和 >= 100。 给定两个整数 maxChoosableInteger(整数池中可选择的最大数)和 desiredTotal(累计和),若先出手的玩家能稳赢则返回 true,否则返回 false。假设两位玩家游戏时都表现最佳。 示例示例 1: 输入:maxChoosableInteger = 10, desiredTotal = 11输出:false解释:无论第一个玩家选择哪个整数,他都会失败。第一个玩家可以选择从 1 到 10 的整数。如果第一个玩家选择 1,那么第二个玩家只能选择从 2 到 10 的整数。第二个玩家可以通过选择整数 10(那么累积和为 11 >=...
通配符匹配
题目描述:(来自力扣-44)给你一个输入字符串 (s) 和一个字符模式 (p) ,请你实现一个支持 ‘?’ 和 ‘‘ 匹配规则的通配符匹配:‘?’ 可以匹配任何单个字符。‘‘ 可以匹配任意字符序列(包括空字符序列)。判定匹配成功的充要条件是:字符模式必须能够 完全匹配 输入字符串(而不是部分匹配)。 解题方法1———动态规划分析: 若没有出现 ‘*’动态规划需要创建一个数组,用来存放匹配到dp的i j位置,是否相同看前一个位置 i-1 j-1 是否匹配 dp数组初始化dp(0)(0)=true遇到前面全是 ‘*’ 的将dp(0)(j)赋值为true; 出现 ‘*’因为 ‘*’可以匹配0个(||)多个字符1.匹配0个字符,dp(i)(j)的值与前一个位置dp(i)(j-1)相关2.匹配多个字符,dp(i)(j)的值与上一个位置dp(i-1)(j)相关 代码123456789101112131415161718192021222324252627public boolean isMatch(String s, String p) { int...
苍穹外卖遇到问题解决
本篇文章主要讲解我在苍穹外卖中遇到的问题 80端口号无法打开nginx默认端口号为80,但自身系统有许多服务占用80端口 解决方法1 找到自己下载的资料nginx安装的位置,打开/nginx-1.20.2/conf/nginx.conf 找到server 将端口listen改为自己的空闲端口,我这里改为了8089,不要改为8080,它会与idea运行时冲突 12server listen 8089; 解决方法2 可以修改nginx与idea中项目的端口号,一起修改,我对nginx与后端连接不太熟悉,没有完成,你们可询问AI,怎么同时修改。 登录不了这个问题的解决方法是修改打开/sky-server/src/main/resources/application-dev.yml 12345678sky: datasource: driver-class-name: com.mysql.cj.jdbc.Driver host: 自己数据库名词 port: 3306 ...

