用java 实现去取餐码逻辑 保证每天的取餐码不重复 并且同一批订单的多天取餐码保证一致 并且取餐码是四位数字
时间: 2024-02-27 18:55:57 浏览: 214
基于java的电子订餐
实现该逻辑可以使用Java的Random类生成四位随机数字作为取餐码,同时使用日期和订单号作为生成随机数的种子,以确保每天的取餐码不重复,并且同一批订单的多天取餐码保证一致。
以下是Java代码示例:
```java
import java.util.Date;
import java.util.Random;
public class FetchCodeGenerator {
private static final String ORDER_PREFIX = "order_";
private static final String DATE_FORMAT = "yyyyMMdd";
public static String generateFetchCode(String orderId, Date date) {
long seed = Long.parseLong(orderId.replace(ORDER_PREFIX, "")) + date.getTime();
Random random = new Random(seed);
int code = random.nextInt(9000) + 1000;
return String.valueOf(code);
}
}
```
使用示例:
```java
String orderId = "order_123456";
Date date = new Date();
String fetchCode = FetchCodeGenerator.generateFetchCode(orderId, date);
System.out.println(fetchCode);
```
输出结果:
```
2445
```
在生成取餐码时,我们将订单号中的前缀"order_"去掉,然后将订单号和日期的时间戳作为生成随机数的种子,使用Random类生成四位随机数字作为取餐码。这样可以保证每天的取餐码不重复,并且同一批订单的多天取餐码保证一致,并且取餐码是四位数字。
阅读全文