Browse Source

增加postgresql类型

jyyw 8 months ago
parent
commit
e25ef74bc1

+ 17 - 17
pom.xml

@@ -10,8 +10,8 @@
     </parent>
     <groupId>com.syjy</groupId>
     <artifactId>calculation-spring-boot-starter</artifactId>
-    <version>0.0.39</version>
-    <!--    <version>0.0.39-SNAPSHOT</version>-->
+    <version>0.0.40</version>
+    <!--    <version>0.0.40-SNAPSHOT</version>-->
     <name>calculation</name>
     <description>Demo project for Spring Boot</description>
     <properties>
@@ -42,18 +42,18 @@
         </dependency>
 
         <!--本地使用时候放开-->
-        <dependency>
-            <groupId>kingbasejdbc4</groupId>
-            <artifactId>kingbasejdbc4</artifactId>
-            <version>1</version>
-        </dependency>
+                <dependency>
+                    <groupId>kingbasejdbc4</groupId>
+                    <artifactId>kingbasejdbc4</artifactId>
+                    <version>1</version>
+                </dependency>
 
         <!--发布时候放开-->
-        <!--        <dependency>-->
-        <!--            <groupId>com.alibaba.cloud</groupId>-->
-        <!--            <version>2.2.0.RELEASE</version>-->
-        <!--            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>-->
-        <!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>com.alibaba.cloud</groupId>-->
+<!--            <version>2.2.0.RELEASE</version>-->
+<!--            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>-->
+<!--        </dependency>-->
 
         <!-- druid 连接池 -->
         <dependency>
@@ -152,11 +152,11 @@
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
-                <!--独立打包作为服务和对外接口时候需要注释-->
-                <!--                <configuration>-->
-                <!--                    <skip>true</skip>-->
-                <!--                    <mainClass>com.syjy.calculate.CalculationApplication</mainClass>-->
-                <!--                </configuration>-->
+                <!--独立打包作为服务和对外接口时候需要注释,上传Maven取消注释-->
+<!--                <configuration>-->
+<!--                    <skip>true</skip>-->
+<!--                    <mainClass>com.syjy.calculate.CalculationApplication</mainClass>-->
+<!--                </configuration>-->
                 <executions>
                     <execution>
                         <goals>

+ 70 - 53
src/main/java/com/syjy/calculate/conotroller/ApiCalculate.java

@@ -1,6 +1,7 @@
 package com.syjy.calculate.conotroller;
 
 import cn.hutool.json.JSONObject;
+import com.syjy.calculate.entity.AssessmentRequest;
 import com.syjy.calculate.entity.CalculateRequest;
 import com.syjy.calculate.entity.CalculateResult;
 import com.syjy.calculate.entity.CalculationFormula;
@@ -26,34 +27,50 @@ import java.util.List;
 @RestController
 @RequestMapping("apiCalculate")
 public class ApiCalculate {
-    @Autowired
-    CalculationFormulaRepository calculationFormulaRepository;
-    @Autowired
-    private AccuracyPassRateCalculateService accuracyPassRateCalculateService;
-    @Autowired
-    private Common common;
+  @Autowired
+  CalculationFormulaRepository calculationFormulaRepository;
+  @Autowired
+  private AccuracyPassRateCalculateService accuracyPassRateCalculateService;
+  @Autowired
+  private Common common;
 
-    /**
-     * 计算单个公式准确率
-     *
-     * @param request
-     * @return
-     */
-    @PostMapping("/calculate")
-    public CalculateResult calculate(HttpServletRequest request, @RequestBody JSONObject data) {
-        // 校验信息
-        CalculateResult checkResult = checkAuthorization(request);
-        // 如果校验不成功,返回失败信息
-        if (!CalculateResult.Type.SUCCESS.value().equals(String.valueOf(checkResult.get(CalculateResult.CODE_TAG)))) {
-            return checkResult;
-        }
-        CalculateRequest calculateRequest;
-        // 将传入的数据转为bean
-        calculateRequest = data.toBean(CalculateRequest.class);
-        // 调用计算方法
-        CalculateResult resultMap = accuracyPassRateCalculateService.calculate(calculateRequest);
-        return resultMap;
+  /**
+   * 计算单个公式准确率
+   *
+   * @param request
+   * @return
+   */
+  @PostMapping("/calculate")
+  public CalculateResult calculate(HttpServletRequest request, @RequestBody JSONObject data) {
+    // 校验信息
+    CalculateResult checkResult = checkAuthorization(request);
+    // 如果校验不成功,返回失败信息
+    if (!CalculateResult.Type.SUCCESS.value().equals(String.valueOf(checkResult.get(CalculateResult.CODE_TAG)))) {
+      return checkResult;
     }
+    CalculateRequest calculateRequest;
+    // 将传入的数据转为bean
+    calculateRequest = data.toBean(CalculateRequest.class);
+    // 调用计算方法
+    CalculateResult resultMap = accuracyPassRateCalculateService.calculate(calculateRequest);
+    return resultMap;
+  }
+
+  @PostMapping("/assessment")
+  public CalculateResult assessment(HttpServletRequest request, @RequestBody JSONObject data) {
+    // 校验信息
+    CalculateResult checkResult = checkAuthorization(request);
+    // 如果校验不成功,返回失败信息
+    if (!CalculateResult.Type.SUCCESS.value().equals(String.valueOf(checkResult.get(CalculateResult.CODE_TAG)))) {
+      return checkResult;
+    }
+    AssessmentRequest assessmentRequest;
+    // 将传入的数据转为bean
+    assessmentRequest = data.toBean(CalculateRequest.class);
+    // 调用计算方法
+    CalculateResult resultMap = accuracyPassRateCalculateService.calculate(assessmentRequest);
+    return resultMap;
+  }
 
 //    /**
 //     * 计算所有公式准确率
@@ -77,34 +94,34 @@ public class ApiCalculate {
 //        return resultMap;
 //    }
 
-    /**
-     * 校验权限信息
-     *
-     * @param request
-     * @return
-     */
-    public CalculateResult checkAuthorization(HttpServletRequest request) {
-        String authorization = request.getHeader(CalculateResult.AUTHORIZATION);
-        // 如果授权信息不存在,返回失败
-        if (authorization == null) {
-            return CalculateResult.error(CalculateResult.MSG_AUTHORIZATION_ERROR);
-        }
-        // 查询用户列表
-        List<CalculationFormula> userList = calculationFormulaRepository.getUser();
-        if (userList == null || userList.size() == 0) {
-            return CalculateResult.error(CalculateResult.MSG_USERINFO_ERROR);
-        }
+  /**
+   * 校验权限信息
+   *
+   * @param request
+   * @return
+   */
+  public CalculateResult checkAuthorization(HttpServletRequest request) {
+    String authorization = request.getHeader(CalculateResult.AUTHORIZATION);
+    // 如果授权信息不存在,返回失败
+    if (authorization == null) {
+      return CalculateResult.error(CalculateResult.MSG_AUTHORIZATION_ERROR);
+    }
+    // 查询用户列表
+    List<CalculationFormula> userList = calculationFormulaRepository.getUser();
+    if (userList == null || userList.size() == 0) {
+      return CalculateResult.error(CalculateResult.MSG_USERINFO_ERROR);
+    }
 
-        // 获取解密后的用户信息
-        String deCodeUser = common.getBase64Decode(authorization);
-        // 将数据库中的用户循环和传入的用户对比
-        for(CalculationFormula calculationFormula:userList){
-            // 如果匹配上则返回成功,否则返回失败
-            if(deCodeUser.equals(calculationFormula.getFormula())){
-                return CalculateResult.success();
-            }
-        }
-        return CalculateResult.error(CalculateResult.MSG_AUTHORIZATION_ERROR);
+    // 获取解密后的用户信息
+    String deCodeUser = common.getBase64Decode(authorization);
+    // 将数据库中的用户循环和传入的用户对比
+    for (CalculationFormula calculationFormula : userList) {
+      // 如果匹配上则返回成功,否则返回失败
+      if (deCodeUser.equals(calculationFormula.getFormula())) {
+        return CalculateResult.success();
+      }
     }
+    return CalculateResult.error(CalculateResult.MSG_AUTHORIZATION_ERROR);
+  }
 
 }

+ 1 - 0
src/main/java/com/syjy/calculate/entity/CalculateResult.java

@@ -157,6 +157,7 @@ public class CalculateResult extends HashMap<String, Object> {
     public static final String DB_ERROR_TABLE_EXIST = "java.sql.SQLException: [KingbaseES Server]ERROR: relation \"t_calculation_formula\" does not exist";
     public static final String DB_MYSQL = "mysql";
     public static final String DB_KINGBASE = "kingbase";
+    public static final String DB_POSTGRES = "postgres";
     // 授权信息
     public static final String AUTHORIZATION = "Authorization";
 

+ 5 - 2
src/main/java/com/syjy/calculate/repository/repositoryImpl/CalculationFormulaRepositoryImpl.java

@@ -56,7 +56,7 @@ public class CalculationFormulaRepositoryImpl implements CalculationFormulaRepos
     // 获取数据库类型
     String dbType = properties.getDbType();
     // 如果是金仓数据库,直接初始化表
-    if (CalculateResult.DB_KINGBASE.equals(dbType)) {
+    if (CalculateResult.DB_KINGBASE.equals(dbType) || ObjectUtil.equal(CalculateResult.DB_POSTGRES, dbType)) {
       this.createTable();
       return;
     }
@@ -406,7 +406,9 @@ public class CalculationFormulaRepositoryImpl implements CalculationFormulaRepos
       if (CalculateResult.DB_KINGBASE.equals(dbType)) {
         path = "sql/t_calculation_formula_king_base.sql";
         // 如果是mysql
-      } else {
+      } if(ObjectUtil.equal(CalculateResult.DB_POSTGRES,dbType)){
+        path = "sql/t_calculation_formula_postgresql.sql";
+      }else {
         path = "sql/t_calculation_formula.sql";
       }
 
@@ -454,6 +456,7 @@ public class CalculationFormulaRepositoryImpl implements CalculationFormulaRepos
         }
       };
       switch (dbType) {
+        case CalculateResult.DB_POSTGRES:
         case CalculateResult.DB_KINGBASE:
           jdbcTemplate.execute(SqlUtil.formatSql(IoUtil.read(sqlInputStream, StandardCharsets.UTF_8)));
           jdbcTemplate.batchUpdate("INSERT INTO T_CALCULATION_FORMULA VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", pss);

+ 20 - 20
src/main/resources/application.yml

@@ -1,15 +1,15 @@
 ## ## 204部署
-server:
-  port: 9089
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    druid:
-      # 数据源配置
-      username: root
-      password: '!QAZ2root'
-      url: jdbc:mysql://192.168.1.226:3306/ipfcst-v3?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&characterSetResults=UTF-8&autoReconnect=true&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai
-      driver-class-name: com.mysql.cj.jdbc.Driver
+#server:
+#  port: 9089
+#spring:
+#  datasource:
+#    type: com.alibaba.druid.pool.DruidDataSource
+#    druid:
+#      # 数据源配置
+#      username: root
+#      password: '!QAZ2root'
+#      url: jdbc:mysql://192.168.1.226:3306/ipfcst-v3?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&characterSetResults=UTF-8&autoReconnect=true&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai
+#      driver-class-name: com.mysql.cj.jdbc.Driver
 
 #server:
 #  port: 9089
@@ -29,14 +29,14 @@ spring:
 #      url: jdbc:kingbase://192.168.1.204:54321/ipfcstV3
 #      driver-class-name: com.kingbase.Driver
 
-logging:
-  file:
-    name: ./logs/calculate.log
-
-calculate:
-  service:
-    enabled: true
-    version: 0.0.39
-    dbType: mysql
+#logging:
+#  file:
+#    name: ./logs/calculate.log
+#
+#calculate:
+#  service:
+#    enabled: true
+#    version: 0.0.39
+#    dbType: mysql
 
 version: @project.version@

+ 21 - 0
src/main/resources/sql/t_calculation_formula_postgresql.sql

@@ -0,0 +1,21 @@
+DROP TABLE IF EXISTS T_CALCULATION_FORMULA;
+CREATE TABLE T_CALCULATION_FORMULA(
+ "ID" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
+ "TYPE" VARCHAR (50) NOT NULL,
+ "ORDER_NO" INTEGER ,
+ "FORMULA" TEXT NOT NULL,
+ "PROVINCE" VARCHAR (50) NOT NULL,
+ "ELECTRIC_TYPE" VARCHAR (50) NOT NULL,
+ "STATION_CODE" VARCHAR (50) ,
+ "RULE_FORMULA" VARCHAR (50) ,
+ "IS_RATE" VARCHAR (50) NOT NULL,
+ "MAX_MIN_LIMIT" VARCHAR (50) ,
+ "STATE" VARCHAR (50) ,
+ "DATA_SOURCE_TYPE" VARCHAR (50) ,
+ "HOW_MANY_DAYS" VARCHAR (50) ,
+ "CREATE_TIME" TIMESTAMP(0),
+ "CREATOR" VARCHAR (50),
+ "LAST_MODIFIER" VARCHAR (50),
+ "LAST_MODIFY_TIME" TIMESTAMP(0),
+  PRIMARY KEY ("ID") USING INDEX TABLESPACE "SYSTEM") WITHOUT OIDS
+TABLESPACE "SYSTEM";