From 7cf8ae446e880537a38bd7ac403bd53741a5294f Mon Sep 17 00:00:00 2001
From: 李林 <z1292839451@163.com>
Date: 星期一, 08 一月 2024 09:21:19 +0800
Subject: [PATCH] 修订版2.0

---
 data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java |  113 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 93 insertions(+), 20 deletions(-)

diff --git a/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
index b018ee4..30d1cac 100644
--- a/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
+++ b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
@@ -15,6 +15,7 @@
 import com.yuanchu.mom.dto.DataReportingPageDto;
 import com.yuanchu.mom.dto.ProductCountDto;
 import com.yuanchu.mom.dto.RegistrantCountDto;
+import com.yuanchu.mom.exception.ErrorException;
 import com.yuanchu.mom.pojo.DataReporting;
 import com.yuanchu.mom.pojo.FansSubmit;
 import com.yuanchu.mom.pojo.FinanceSubmit;
@@ -36,10 +37,12 @@
 import java.math.BigDecimal;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 
 @RequestMapping("/dataReporting")
 @RestController
@@ -112,7 +115,7 @@
     @ApiOperation(value = "娣诲姞杩涚矇涓婃姤淇℃伅")
     @PostMapping("/addFansSubmit")
     public Result<?> addFansSubmit(@RequestBody FansSubmit fansSubmit) {
-        return Result.success(fansSubmitService.addFansSubmit(fansSubmit));
+        return Result.success(fansSubmitService.addFansSubmit(fansSubmit, null));
     }
 
     @ApiOperation(value = "鑾峰彇璐㈠姟涓婃姤鍒楄〃")
@@ -137,8 +140,8 @@
 
     @ApiOperation(value = "娣诲姞璐㈠姟涓婃姤淇℃伅")
     @PostMapping("/addFinanceSubmit")
-    public Result<?> addFinanceSubmit(@RequestBody FinanceSubmit financeSubmit) {
-        return Result.success(financeSubmitService.addFinanceSubmit(financeSubmit));
+    public Result<?> addFinanceSubmit(@RequestBody FinanceSubmit financeSubmit, String date) {
+        return Result.success(financeSubmitService.addFinanceSubmit(financeSubmit, date));
     }
 
     @ValueAuth
@@ -155,21 +158,47 @@
         CsvData data = reader.read(new InputStreamReader(file.getInputStream(), "GB2312"));
         List<CsvRow> rows = data.getRows();
         List<DataReporting> list = new ArrayList<>();
-        for (int i = 5; i < rows.size(); i++) {
+        String format;
+        try {
+            format = new SimpleDateFormat("yyyy-MM-dd").format(new SimpleDateFormat("yyyyMMdd").parse(rows.get(2).get(0).split("锛�")[1]));
+        } catch (ParseException e) {
+            e.printStackTrace();
+            throw new ErrorException("鏂囦欢涓棩鏈熷湪杞崲鏃跺嚭鐜伴敊璇�");
+        }
+        for (int i = 6; i < rows.size(); i++) {
             DataReporting reporting = new DataReporting();
-            reporting.setName(rows.get(i).get(0))
-                    .setProduct(rows.get(i).get(1))
-                    .setShowNum(Integer.valueOf(rows.get(i).get(3)))
-                    .setClick(Integer.valueOf(rows.get(i).get(4)))
-//                    .setAvgPrice(new BigDecimal(rows.get(i).get(5)))
-                    .setAccountConsumption(new BigDecimal(rows.get(i).get(6)));
-//                    .setSearchBalance(new BigDecimal(rows.get(i).get(6)))
-//                    .setInfoBalance(new BigDecimal(rows.get(i).get(7)))
-//                    .setVxClick(Double.valueOf(rows.get(i).get(8)))
-//                    .setClickThroughRate(rows.get(i).get(9));
+            for (int i1 = 0; i1 < rows.get(5).size(); i1++) {
+                String str = rows.get(i).get(i1);
+                if (str == null) continue;
+                switch (rows.get(5).get(i1)) {
+                    case "璐︽埛":
+                        reporting.setName(str);
+                        break;
+                    case "澶囨敞":
+                        String[] split = str.split("-");
+                        if (split.length == 4) {
+                            reporting.setName2(split[0]);
+                            reporting.setChannel(split[1]);
+                            reporting.setAgent(split[2]);
+                            reporting.setProduct(split[3]);
+                            break;
+                        }
+                        reporting.setProduct(str);
+                        break;
+                    case "灞曠幇閲�":
+                        reporting.setShowNum(Integer.parseInt(str));
+                        break;
+                    case "鐐瑰嚮閲�":
+                        reporting.setClick(Integer.parseInt(str));
+                        break;
+                    case "娑堣垂":
+                        reporting.setAccountConsumption(new BigDecimal(str));
+                        break;
+                }
+            }
             list.add(reporting);
         }
-        dataReportingService.addDataReporting(list);
+        dataReportingService.addDataReporting(list, format);
         return Result.success();
     }
 
@@ -178,7 +207,7 @@
     public Result<?> addDataReporting(@RequestBody DataReporting dataReporting) {
         ArrayList<DataReporting> list = new ArrayList<>();
         list.add(dataReporting);
-        dataReportingService.addDataReporting(list);
+        dataReportingService.addDataReporting(list, null);
         return Result.success();
     }
 
@@ -206,4 +235,48 @@
         return Result.success("瀵煎嚭鎴愬姛", dataReportingService.downRegistrantCountFile(page, registrantCountDto));
     }
 
+    @ApiOperation(value = "瀵煎嚭杩涚矇涓婃姤鍒楄〃")
+    @PostMapping("/downFansSubmitFile")
+    public Result downFansSubmitFile(@RequestBody Map<String, Object> data) {
+        Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class);
+        FansSubmit fansSubmit = JSON.parseObject(JSON.toJSONString(data.get("entity")), FansSubmit.class);
+        return Result.success("瀵煎嚭鎴愬姛", dataReportingService.downFansSubmitFile(page, fansSubmit));
+    }
+
+    @ApiOperation(value = "瀵煎叆杩涚矇涓婃姤鍒楄〃")
+    @PostMapping("/inputFansSubmitCsv")
+    public Result<?> inputFansSubmitCsv(@RequestParam("file") MultipartFile file) throws IOException {
+        CsvReader reader = CsvUtil.getReader();
+        CsvData data = reader.read(new InputStreamReader(file.getInputStream(), "GB2312"));
+        List<CsvRow> rows = data.getRows();
+        String format;
+        try {
+            format = new SimpleDateFormat("yyyy-MM-dd").format(new SimpleDateFormat("yyyyMMdd").parse(rows.get(2).get(0).split("锛�")[1]));
+        } catch (ParseException e) {
+            throw new ErrorException("鏂囦欢涓棩鏈熷湪杞崲鏃跺嚭鐜伴敊璇�");
+        }
+        for (int i = 6; i < rows.size(); i++) {
+            FansSubmit fansSubmit = new FansSubmit();
+            for (int i1 = 0; i1 < rows.get(5).size(); i1++) {
+                String str = rows.get(i).get(i1);
+                if (str == null) continue;
+                switch (rows.get(5).get(i1)) {
+                    case "瀹㈡埛":
+                        fansSubmit.setCustom(str);
+                        break;
+                    case "椤圭洰":
+                        fansSubmit.setProduct(str);
+                        break;
+                    case "寰俊鍙�":
+                        fansSubmit.setVx(str);
+                        break;
+                    case "杩涚矇":
+                        fansSubmit.setFansAdd(Integer.parseInt(str));
+                        break;
+                }
+            }
+            fansSubmitService.addFansSubmit(fansSubmit, format);
+        }
+        return Result.success();
+    }
 }

--
Gitblit v1.9.3