Explorar o código

fix(单号功能):调整获取方式,通过jpa获取的改为jdbctemplate

yuj %!s(int64=7) %!d(string=hai) anos
pai
achega
40b5caec04

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

@@ -1,24 +1,26 @@
 package com.uas.platform.b2c.prod.product.common.service.impl;
 
-import com.uas.platform.b2c.prod.commodity.controller.GoodsController;
 import com.uas.platform.b2c.prod.product.common.dao.CreateNumberDao;
 import com.uas.platform.b2c.prod.product.common.model.CreateNumber;
 import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
 import com.uas.platform.b2c.core.utils.DateFormatUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.DataAccessException;
 import org.springframework.data.redis.connection.RedisConnection;
 import org.springframework.data.redis.core.RedisCallback;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.RowMapper;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.io.Serializable;
+import java.sql.ResultSet;
+import java.sql.SQLException;
 import java.util.Date;
+import java.util.List;
 
 @Service
 public class CreateNumberServiceImpl implements CreateNumberService {
@@ -78,8 +80,19 @@ public class CreateNumberServiceImpl implements CreateNumberService {
 	    while((times < 10) && !success) {
             String time = getTime();
             int num = 0;
-            CreateNumber createNumber = createNumberDao.findByTbname(tnName);
-            if (createNumber == null) {
+			List<CreateNumber> numbers = jdbcTemplate.query("select cn_number, cn_tbname, cn_time from product$creat_number where cn_tbname = '" + tnName + "'", new RowMapper<CreateNumber>() {
+
+				@Override
+				public CreateNumber mapRow(ResultSet resultSet, int i) throws SQLException {
+					CreateNumber createNumber = new CreateNumber();
+					createNumber.setTbname(resultSet.getString("cn_tbname"));
+					createNumber.setNumber(resultSet.getInt("cn_number"));
+					createNumber.setTime(resultSet.getString("cn_time"));
+					return createNumber;
+				}
+			});
+			CreateNumber createNumber = null;
+            if (CollectionUtils.isEmpty(numbers)) {
                 num = (addNums.length > 0) ? (num + addNums[0]) : (num + 1);
                 createNumber = new CreateNumber(tnName, time, num + 1);
                 try {
@@ -90,6 +103,7 @@ public class CreateNumberServiceImpl implements CreateNumberService {
                     e.printStackTrace();
                 }
             } else {
+				createNumber = numbers.get(0);
                 //如果已经存在createNumber信息
                 Integer originNum = createNumber.getNumber();
                 String originTime = createNumber.getTime();

+ 10 - 0
src/test/java/com/uas/platform/b2c/javase/collection/TableOrderTest.java

@@ -7,6 +7,7 @@ import com.uas.platform.b2c.prod.commodity.model.Product;
 import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 
@@ -46,4 +47,13 @@ public class TableOrderTest extends BaseJunitTest {
             System.out.println("sfsaf");
         }
     }
+
+    @Transactional
+    @Test
+    public void testA() {
+        for (int i = 0; i < 5; i++) {
+            String timeNumber = createNumberService.getTimeNumber("trade$order_detail", 8);
+            System.out.println(timeNumber);
+        }
+    }
 }