规则:
- 1.code = InsertCodeUtil.getIncrSerial(字母所写+ORG+租户id+"-"+组织id);
注:根据key获取Redis自增流水 - 2.如果code是"0001"
count = 当前租户+组织下数据的条数
code = InsertCodeUtil.getIncrSerial(字母所写+ORG+租户id+"-"+组织id,count); - 3.dateCode = 字母缩写+当前时间(yyyyMMdd)
- 4.code = dateCode + code
代码:
String code = InsertCodeUtil.getIncrSerial(BusinessConstant.ZF+CommonConstant.ORG+user.getTenantId()+"_"+couponAbandonSaveVO.getMarketingOrganizationId());
if (CommonConstant.CODE.equals(code)) {
MutipleCondition where = new MutipleCondition();
where.add(new SingleCondition().setField(CouponAbandonDao.tenantId).setOperator(CompareOperator.EQUAL).setIntegers(user.getTenantId()));
where.add(new SingleCondition().setField(CouponAbandonDao.marketingOrganizationId).setOperator(CompareOperator.IS_NULL));
Long count = couponAbandonDao.count(where);
code = InsertCodeUtil.getIncrSerial(BusinessConstant.ZF+CommonConstant.TENANT+user.getTenantId()+"_"+couponAbandonSaveVO.getMarketingOrganizationId(), count);
}
String dateCode = commonService.createCode(BusinessConstant.ZF);
code = dateCode+code;
couponAbandon.setCode(code);
//生成券码的方法
public String createCode(String type) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
String date = LocalDateTime.now().format(formatter);
return type+date;
}
本文介绍了一种基于租户和组织ID的自增流水号生成规则,利用Redis自增功能确保唯一性,并结合当前时间生成券码前缀,最终形成完整的券码。该方法适用于多租户环境下大量数据的唯一标识生成。
1497

被折叠的 条评论
为什么被折叠?



