wangdy 8 years ago
parent
commit
cde326cc5d

+ 27 - 24
src/main/java/com/uas/platform/b2c/prod/product/common/service/impl/CreateNumberServiceImpl.java

@@ -42,33 +42,36 @@ public class CreateNumberServiceImpl implements CreateNumberService {
 		synchronized (tbname) {
 			// 1、找有没有用存这个表的
 			String timeNumber = "";
-			while (getDataFromRedis(tbname) == null) {
-				setDataToRedis(tbname);
-				String time = getTime();
-				int num;
-				CreateNumber createNumber = createNumberDao.findByTbname(tbname);
-				if (createNumber == null) {
-					createNumber = new CreateNumber();
-					createNumber.setTbname(tbname);
-					createNumber.setTime(time);
-					num = 1;
-				} else {
-					// 2、检查时间是不是今天
-					if (time.equals(createNumber.getTime())) {
-						num = createNumber.getNumber() + 1;
-					} else {
-						num = 1;
+			while (true) {
+				if (getDataFromRedis(tbname) == null) {
+					setDataToRedis(tbname);
+					String time = getTime();
+					int num;
+					CreateNumber createNumber = createNumberDao.findByTbname(tbname);
+					if (createNumber == null) {
+						createNumber = new CreateNumber();
+						createNumber.setTbname(tbname);
 						createNumber.setTime(time);
+						num = 1;
+					} else {
+						// 2、检查时间是不是今天
+						if (time.equals(createNumber.getTime())) {
+							num = createNumber.getNumber() + 1;
+						} else {
+							num = 1;
+							createNumber.setTime(time);
+						}
 					}
+					if (addNums.length > 0) {
+						createNumber.setNumber(num + addNums[0] - 1);
+					} else {
+						createNumber.setNumber(num);
+					}
+					createNumberDao.save(createNumber);
+					redisTemplate.delete(tbname);
+					timeNumber = createNumber.getTime() + formatIntToStr(num, digit);
+					break;
 				}
-				if (addNums.length > 0) {
-					createNumber.setNumber(num + addNums[0] - 1);
-				} else {
-					createNumber.setNumber(num);
-				}
-				createNumberDao.save(createNumber);
-				redisTemplate.delete(tbname);
-				timeNumber = createNumber.getTime() + formatIntToStr(num, digit);
 			}
 
 			return timeNumber;