package cn.iocoder.yudao.module.aftersales.dal.redis.no;
|
|
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DateUtil;
|
import cn.iocoder.yudao.module.aftersales.dal.redis.RedisKeyConstants;
|
import jakarta.annotation.Resource;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.stereotype.Repository;
|
|
import java.time.Duration;
|
import java.time.LocalDateTime;
|
|
/**
|
* 售后模块单号 Redis DAO
|
*/
|
@Repository
|
public class AfterSaleNoRedisDAO {
|
|
/**
|
* 售后工单 {@link cn.iocoder.yudao.module.aftersales.dal.dataobject.ticket.AfterSaleTicketDO}
|
*/
|
public static final String TICKET_NO_PREFIX = "AS";
|
|
/**
|
* 退货申请 {@link cn.iocoder.yudao.module.aftersales.dal.dataobject.returnobj.AfterSaleReturnDO}
|
*/
|
public static final String RETURN_NO_PREFIX = "RT";
|
|
@Resource
|
private StringRedisTemplate stringRedisTemplate;
|
|
/**
|
* 生成序号,使用当前日期,格式为 {PREFIX} + yyyyMMdd + 6 位自增
|
*
|
* @param prefix 前缀
|
* @return 序号
|
*/
|
public String generate(String prefix) {
|
String noPrefix = prefix + DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATE_PATTERN);
|
String key = RedisKeyConstants.NO + noPrefix;
|
Long no = stringRedisTemplate.opsForValue().increment(key);
|
stringRedisTemplate.expire(key, Duration.ofDays(1L));
|
return noPrefix + String.format("%06d", no);
|
}
|
|
}
|