| | |
| | | |
| | | |
| | | |
| | | import com.ruoyi.common.redis.service.RedisService; |
| | | import org.apache.commons.lang3.time.DateFormatUtils; |
| | | import org.apache.commons.lang3.time.DateUtils; |
| | | import org.apache.poi.ss.usermodel.DateUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | |
| | | import java.security.SecureRandom; |
| | | import java.util.Date; |
| | | import java.util.Random; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * @author jqs34 |
| | |
| | | * @version: 1.0 |
| | | */ |
| | | public class CodeFactoryUtil { |
| | | |
| | | |
| | | //静态住入到自己的类中 |
| | | private static RedisService redisService; |
| | | |
| | | //将静态属性以入参(形参)的方式传入一个方法中,然后将此方法通过 @Autowired 注入到Spring容器中 |
| | | @Autowired |
| | | public void setService(RedisService redisService) { |
| | | CodeFactoryUtil.redisService = redisService; |
| | | } |
| | | |
| | | /** |
| | | * APP用户编码 |
| | |
| | | public static String getShopOrderNo() { |
| | | String orderNo; |
| | | String timeTemp = DateFormatUtils.format(new Date(), "yyyyMMdd"); |
| | | String suffixNumber = "0001"; |
| | | orderNo = ORDER_PREFIX + timeTemp + suffixNumber; |
| | | String prefix = ORDER_PREFIX + timeTemp; |
| | | String suffixNumber = getSuffixNumber(prefix); |
| | | orderNo = prefix + suffixNumber; |
| | | return orderNo; |
| | | } |
| | | |
| | | private static String getSuffixNumber(String prefix){ |
| | | Integer suffixNumberInt; |
| | | String suffixNumber = "0001"; |
| | | if(redisService.hasKey(prefix)){ |
| | | suffixNumberInt = redisService.getCacheObject(prefix); |
| | | suffixNumber = toFillZeroSuffixNumber(suffixNumberInt); |
| | | suffixNumberInt = suffixNumberInt + 1; |
| | | redisService.setCacheObject(prefix, suffixNumberInt, 24L, TimeUnit.HOURS); |
| | | }else{ |
| | | redisService.setCacheObject(prefix, 1, 24L, TimeUnit.HOURS); |
| | | } |
| | | return suffixNumber; |
| | | } |
| | | |
| | | private static String toFillZeroSuffixNumber(Integer suffixNumberInt){ |
| | | String suffixNumberStr = suffixNumberInt.toString(); |
| | | int length = suffixNumberStr.length(); |
| | | int fillLength = 4 - length; |
| | | StringBuilder idsbs = new StringBuilder(); |
| | | for (int i = 0; i < fillLength; i++) { |
| | | idsbs.append("0"); |
| | | } |
| | | return idsbs.append(suffixNumberStr).toString(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 0补位 |
| | | * |