Przeglądaj źródła

资产table列表接口

lmstack 3 lat temu
rodzic
commit
ae9af889c4

+ 18 - 0
src/main/java/cn/fastfun/config/CrosConfig.java

@@ -0,0 +1,18 @@
+//package cn.fastfun.config;
+//
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.web.servlet.config.annotation.CorsRegistry;
+//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+//
+//@Configuration
+//public class CrosConfig implements WebMvcConfigurer{
+//    @Override
+//    public void addCorsMappings(CorsRegistry registry) {
+//        registry.addMapping("/**")
+//                .allowedOrigins("*")
+//                .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
+//                .allowCredentials(true)
+//                .allowedHeaders("*")
+//                .maxAge(3600);
+//    }
+//}

+ 13 - 26
src/main/java/cn/fastfun/config/GlobalCorsConfig.java

@@ -1,33 +1,20 @@
 package cn.fastfun.config;
 
-import org.springframework.context.annotation.Bean;
+
 import org.springframework.context.annotation.Configuration;
-import org.springframework.web.cors.CorsConfiguration;
-import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
-import org.springframework.web.filter.CorsFilter;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 @Configuration
-public class GlobalCorsConfig {
-    @Bean
-    public CorsFilter corsFilter() {
-        //1.添加CORS配置信息
-        CorsConfiguration config = new CorsConfiguration();
-        //放行哪些原始域
-        config.addAllowedOrigin("*");
-        //是否发送Cookie信息
-        config.setAllowCredentials(true);
-        //放行哪些原始域(请求方式)
-        config.addAllowedMethod("*");
-        //放行哪些原始域(头部信息)
-        config.addAllowedHeader("*");
-        //暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息)
-//        config.addExposedHeader("*");
-
-        //2.添加映射路径
-        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
-        configSource.registerCorsConfiguration("/**", config);
-
-        //3.返回新的CorsFilter.
-        return new CorsFilter(configSource);
+public class GlobalCorsConfig implements WebMvcConfigurer {
+    @Override
+    public void addCorsMappings(CorsRegistry registry) {
+        registry.addMapping("/**")
+                .allowedOrigins("*")
+                .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
+                .allowCredentials(true)
+                .allowedHeaders("*")
+                .maxAge(3600);
     }
 }
+

+ 106 - 35
src/main/java/cn/fastfun/controller/api/ApiAssetProfitController.java

@@ -23,11 +23,9 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @author Bridge AutoGen
@@ -100,8 +98,12 @@ public class ApiAssetProfitController {
             QueryWrapper<AppAssetConf> queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.select("ifnull(sum(amount),0) as total");
             Map<String, Object> res = appAssetConfService.getMap(queryWrapper);
@@ -110,8 +112,12 @@ public class ApiAssetProfitController {
             queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.eq("type", 1);
             queryWrapper.select("ifnull(sum(amount),0) as total");
@@ -121,8 +127,12 @@ public class ApiAssetProfitController {
             queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.eq("type", 2);
             queryWrapper.select("ifnull(sum(amount),0) as total");
@@ -156,8 +166,12 @@ public class ApiAssetProfitController {
             QueryWrapper<AppAssetConf> queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.select("ifnull(sum(amount),0) as total");
             Map<String, Object> res = appAssetConfService.getMap(queryWrapper);
@@ -223,8 +237,12 @@ public class ApiAssetProfitController {
             QueryWrapper<AppAssetConf> queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.select("ifnull(sum(amount),0) as total");
             Map<String, Object> res = appAssetConfService.getMap(queryWrapper);
@@ -233,8 +251,12 @@ public class ApiAssetProfitController {
             queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.eq("type", 1);
             queryWrapper.select("ifnull(sum(amount),0) as total");
@@ -244,8 +266,12 @@ public class ApiAssetProfitController {
             queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.eq("type", 2);
             queryWrapper.select("ifnull(sum(amount),0) as total");
@@ -255,8 +281,12 @@ public class ApiAssetProfitController {
             queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.eq("type", 3);
             queryWrapper.select("ifnull(sum(amount),0) as total");
@@ -266,8 +296,12 @@ public class ApiAssetProfitController {
             queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.eq("type", 4);
             queryWrapper.select("ifnull(sum(amount),0) as total");
@@ -304,8 +338,12 @@ public class ApiAssetProfitController {
             QueryWrapper<AppAssetConf> queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.eq("type", 1);
             queryWrapper.select("ifnull(sum(amount),0) as total");
@@ -315,8 +353,12 @@ public class ApiAssetProfitController {
             queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.eq("type", 2);
             queryWrapper.select("ifnull(sum(amount),0) as total");
@@ -354,8 +396,12 @@ public class ApiAssetProfitController {
             QueryWrapper<AppAssetConf> queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.select("ifnull(sum(amount),0) as total");
             Map<String, Object> res = appAssetConfService.getMap(queryWrapper);
@@ -390,8 +436,12 @@ public class ApiAssetProfitController {
             QueryWrapper<AppAssetConf> queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.eq("type", 1);
             queryWrapper.select("ifnull(sum(amount),0) as total");
@@ -401,8 +451,12 @@ public class ApiAssetProfitController {
             queryWrapper = new QueryWrapper();
             queryWrapper.eq("is_delete", 0);
             queryWrapper.eq("sn", param.getSn());
-            queryWrapper.gt("time", param.getTimeStart());
-            queryWrapper.lt("time", param.getTimeEnd());
+            if (param.getTimeStart() != null) {
+                queryWrapper.gt("time", param.getTimeStart());
+            }
+            if (param.getTimeEnd() != null) {
+                queryWrapper.lt("time", param.getTimeEnd());
+            }
             queryWrapper.eq("table_order", param.getTableOrder());
             queryWrapper.eq("type", 2);
             queryWrapper.select("ifnull(sum(amount),0) as total");
@@ -467,6 +521,15 @@ public class ApiAssetProfitController {
             response = (ResponseDTO) responseDTO;
         }
 
+        // 收益预估信息
+        else if (param.getTableOrder() != null && param.getTableOrder().equals(10)) {
+            ResponseDTO responseDTO = new ResponseDTO();
+            BaseInfoDTO baseInfo = (BaseInfoDTO) getBaseInfo(param).getData();
+            if (baseInfo != null){
+
+            }
+
+        }
         return ApiDTO.ok("成功", response);
     }
 
@@ -500,9 +563,15 @@ public class ApiAssetProfitController {
     }
 
     @ApiOperation(value = "导出")
-    @RequestMapping(value = "export", method = RequestMethod.GET)
-    public void export(@ApiParam(name = "设备信息对象", value = "传入json格式", required = true) AssetProfitParam param, HttpServletResponse response) {
-
+    @GetMapping("export")
+    public void export(HttpServletResponse response, @RequestParam String sn, @RequestParam String timeStart, @RequestParam String timeEnd, @RequestParam Integer tableOrder, @RequestParam String type) throws ParseException {
+
+        AssetProfitParam param = new AssetProfitParam();
+        param.setSn(sn.equals("null")?null:sn);
+        param.setTimeStart(timeStart.equals("null")?null:new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timeStart));
+        param.setTimeEnd(timeEnd.equals("null")?null:new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timeEnd));
+        param.setTableOrder(tableOrder==null?null:tableOrder);
+        param.setType(type.equals("null")?null:type);
         if (!StringUtils.hasLength(param.getSn())) {
             throw new ApiRuntimeException("请输入sn");
         }
@@ -596,4 +665,6 @@ public class ApiAssetProfitController {
 //        return ApiDTO.ok("成功");
         }
     }
+
+
 }

+ 2 - 0
src/main/java/cn/fastfun/service/impl/AppAssetProfitServiceImpl.java

@@ -60,6 +60,7 @@ public class AppAssetProfitServiceImpl {
     // 拼接异步请求参数
     @Async
     public Future<String> asyncReq(JSONObject param, String url, Map<String, String> mapHeaders ) {
+        mapHeaders.put("token", "2A26DD0ADE53456D928562A17131A3B5");
         String response = okHttpCli.doPostTokenJson(String.format(url, openApiIp, openApiPort), param.toJSONString(), mapHeaders);
         Future<String> result = new AsyncResult<>(response);
         return result;
@@ -71,6 +72,7 @@ public class AppAssetProfitServiceImpl {
 
         // 请求开放平台
         List<Future<String>> futures = new ArrayList<>();
+
         JSONObject json = new JSONObject();
         json.put("sn", param.getSn());
         futures.add(asyncReq(json, "http://%s:%s/admin/v1/assetBatteryBasicInfo", new HashMap<>()));

+ 59 - 0
src/main/java/cn/fastfun/util/IrrUtil.java

@@ -0,0 +1,59 @@
+package cn.fastfun.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class IrrUtil {
+    /**
+     * 迭代次数
+     */
+    public static int LOOP_NUM = 1000;
+    /**
+     * 最小差异
+     */
+    public static final double MIN_DIF = 1;
+
+
+    /**
+     * @param cashFlow 资金流
+     * @return 收益率
+     * @desc 使用方法参考main方法
+     */
+    public static double getIrr(List<Double> cashFlow) {
+        double flowOut = cashFlow.get(0);
+        double minValue = 0d;
+        double maxValue = 1d;
+        double testValue = 0d;
+        int index = 0;
+        while (LOOP_NUM > 0) {
+
+            testValue = (minValue + maxValue) / 2;
+            double npv = NPV(cashFlow, testValue);
+            if (Math.abs(flowOut + npv) < MIN_DIF) {
+                System.out.println(index);
+                break;
+            } else if (Math.abs(flowOut) > npv) {
+                maxValue = testValue;
+            } else {
+                minValue = testValue;
+            }
+            index ++;
+            LOOP_NUM--;
+        }
+        return testValue;
+    }
+
+    public static double NPV(List<Double> flowInArr, double rate) {
+        double npv = 0;
+        for (int i = 1; i < flowInArr.size(); i++) {
+            npv += flowInArr.get(i) / Math.pow(1 + rate, i);
+        }
+        return npv;
+    }
+
+    public static String main(double price, List<Double> flowIn) {
+        flowIn.add(0, price);
+        return (IrrUtil.getIrr(flowIn)*100 +"%");
+    }
+
+}

+ 1 - 1
src/main/resources/application-dev.yml

@@ -42,5 +42,5 @@ ok:
     keep-alive-duration: 300
 
 openapi:
-  ip: 192.168.0.102
+  ip: 47.111.243.220
   port: 8082

+ 5 - 1
src/main/resources/application-prod.yml

@@ -28,4 +28,8 @@ logging:
 
 project:
   token-time: 360000
-  secret-key: pdms-oss-api
+  secret-key: pdms-oss-api
+
+openapi:
+  ip: 47.111.243.220
+  port: 8082