소스 검색

计数器增加支持HTTP取数

suntg 7 년 전
부모
커밋
fb6aaa7f81

+ 15 - 1
src/main/java/com/uas/platform/b2c/prod/product/common/CommonTask.java

@@ -2,9 +2,11 @@ package com.uas.platform.b2c.prod.product.common;
 
 import com.uas.platform.b2c.prod.product.common.dao.CommonCountDao;
 import com.uas.platform.b2c.prod.product.common.model.CommonCount;
+import com.uas.platform.core.util.HttpUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
 
 import java.util.List;
 
@@ -29,7 +31,19 @@ public class CommonTask {
     public void updateCount() {
         List<CommonCount> commonCounts = commonCountDao.findByStatus((short) 1);
         for (CommonCount commonCount : commonCounts) {
-            commonCount.setCount(jdbcTemplate.queryForObject(commonCount.getSql(), Double.class));
+            // 通过HTTP接口获取数据
+            if (CommonCount.SourceType.HTTP.equals(commonCount.getSourceType())) {
+                try {
+                    String responseText = HttpUtil.sendGetRequest(commonCount.getSql(), null).getResponseText();
+                    if (!StringUtils.isEmpty(responseText)) {
+                        commonCount.setCount(Double.parseDouble(responseText));
+                    }
+                } catch (Exception e) {
+                }
+            } else {
+                // 默认,通过执行SQL语句获取数据结果
+                commonCount.setCount(jdbcTemplate.queryForObject(commonCount.getSql(), Double.class));
+            }
         }
         commonCountDao.save(commonCounts);
     }

+ 31 - 0
src/main/java/com/uas/platform/b2c/prod/product/common/model/CommonCount.java

@@ -1,5 +1,7 @@
 package com.uas.platform.b2c.prod.product.common.model;
 
+import com.alibaba.fastjson.annotation.JSONField;
+
 import javax.persistence.*;
 import java.io.Serializable;
 
@@ -39,6 +41,7 @@ public class CommonCount implements Serializable{
     /**
      * 执行sql语句
      */
+    @JSONField(serialize = false)
     @Column(name = "cc_sql", length = 4000)
     private String sql;
 
@@ -54,9 +57,17 @@ public class CommonCount implements Serializable{
     @Column(name = "cc_usedfor")
     private String usedFor;
 
+    /**
+     * 数据来源
+     */
+    @JSONField(serialize = false)
+    @Column(name = "cc_sourcetype")
+    private String sourceType;
+
     /**
      * 状态,是否激活(1:是;0:否)
      */
+    @JSONField(serialize = false)
     @Column(name = "cc_status")
     private Short status = 0;
 
@@ -115,4 +126,24 @@ public class CommonCount implements Serializable{
     public void setStatus(Short status) {
         this.status = status;
     }
+
+    public String getSourceType() {
+        return sourceType;
+    }
+
+    public void setSourceType(String sourceType) {
+        this.sourceType = sourceType;
+    }
+
+    public class SourceType {
+        /**
+         * SQL 通过SQL语句来执行获取结果
+         */
+        public static final String SQL = "SQL";
+        /**
+         * HTTP 通过HTTP接口来获取数据结果
+         */
+        public static final String HTTP = "HTTP";
+
+    }
 }

+ 0 - 3
src/main/java/com/uas/platform/b2c/prod/product/common/service/impl/CommonCountServiceImpl.java

@@ -20,9 +20,6 @@ public class CommonCountServiceImpl implements CommonCountService{
     @Override
     public List<CommonCount> findByStatus(Short status, String usedFor) {
         List<CommonCount> commonCounts = commonCountDao.findByStatusAndUsedForOrderByDetno(status, usedFor);
-        for (CommonCount commonCount : commonCounts) {
-            commonCount.setSql(null);
-        }
         return commonCounts;
     }
 

+ 24 - 0
src/test/java/com/uas/platform/b2c/common/task/CommonTask.java

@@ -0,0 +1,24 @@
+package com.uas.platform.b2c.common.task;
+
+import com.uas.platform.b2c.BaseJunitTest;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.transaction.TransactionConfiguration;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@TransactionConfiguration(defaultRollback = false)
+public class CommonTask extends BaseJunitTest {
+
+    @Autowired
+    private com.uas.platform.b2c.prod.product.common.CommonTask commonTask;
+
+
+    @Test
+    public void testGetByPage() throws Exception {
+        commonTask.updateCount();
+    }
+
+}