From d2e5bfafeae42297cf3105402bc7f39034fe9d4a Mon Sep 17 00:00:00 2001
From: liyalong <yalong.li@outlook.com>
Date: Tue, 8 Apr 2025 10:45:49 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E4=BB=8E=E8=B4=A6?=
 =?UTF-8?q?=E5=8D=95=E8=8E=B7=E5=8F=96=E7=94=B5=E4=BB=B7=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../demos/web/controller/BasicController.java | 10 +++++++++
 .../example/demo/model/ElePriceInfoModel.java |  1 +
 .../example/demo/service/BasicService.java    |  4 ++--
 .../demo/service/impl/BasicServiceImpl.java   | 21 +++++++++++++++++++
 4 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/demo/src/main/java/com/example/demo/demos/web/controller/BasicController.java b/demo/src/main/java/com/example/demo/demos/web/controller/BasicController.java
index c48f10c..25a45ef 100644
--- a/demo/src/main/java/com/example/demo/demos/web/controller/BasicController.java
+++ b/demo/src/main/java/com/example/demo/demos/web/controller/BasicController.java
@@ -86,6 +86,16 @@ public class BasicController {
         return response;
     }
 
+    @PostMapping("/getElePriceFromBill")
+    @ResponseBody
+    public Object getElePriceFromBill(@RequestBody ElePriceInfoModel model) {
+        Object response = new Object();
+        log.info("获取电费电价信息入参:model:{}", JSON.toJSONString(model));
+        response = basicService.getElePriceFromBill(model);
+        log.info("获取电费电价返回:{}", JSON.toJSONString(response));
+        return response;
+    }
+
     // http://127.0.0.1:8080/user
     @RequestMapping("/user")
     @ResponseBody
diff --git a/demo/src/main/java/com/example/demo/model/ElePriceInfoModel.java b/demo/src/main/java/com/example/demo/model/ElePriceInfoModel.java
index fa8eee5..c1f64cd 100644
--- a/demo/src/main/java/com/example/demo/model/ElePriceInfoModel.java
+++ b/demo/src/main/java/com/example/demo/model/ElePriceInfoModel.java
@@ -15,4 +15,5 @@ public class ElePriceInfoModel {
     private String elecType;
     private String startTime;
     private String endTime;
+    private String elecNumber;
 }
diff --git a/demo/src/main/java/com/example/demo/service/BasicService.java b/demo/src/main/java/com/example/demo/service/BasicService.java
index 3821461..88d5ef1 100644
--- a/demo/src/main/java/com/example/demo/service/BasicService.java
+++ b/demo/src/main/java/com/example/demo/service/BasicService.java
@@ -3,8 +3,6 @@ package com.example.demo.service;
 import com.example.demo.model.ElePriceInfoModel;
 import com.example.demo.model.ElecBindInfoModel;
 import com.example.demo.model.Response;
-import org.springframework.stereotype.Service;
-import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.Map;
 
@@ -18,4 +16,6 @@ public interface BasicService {
     Object getBindingInfo(ElecBindInfoModel model);
 
     Object getElePriceInfo(ElePriceInfoModel model);
+
+    Object getElePriceFromBill(ElePriceInfoModel param);
 }
diff --git a/demo/src/main/java/com/example/demo/service/impl/BasicServiceImpl.java b/demo/src/main/java/com/example/demo/service/impl/BasicServiceImpl.java
index c3bbaa1..918e303 100644
--- a/demo/src/main/java/com/example/demo/service/impl/BasicServiceImpl.java
+++ b/demo/src/main/java/com/example/demo/service/impl/BasicServiceImpl.java
@@ -1,5 +1,6 @@
 package com.example.demo.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.example.demo.constant.EleConstant;
 import com.example.demo.constant.StaConstant;
@@ -16,6 +17,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -128,6 +130,25 @@ public class BasicServiceImpl implements BasicService {
         return result;
     }
 
+    @Override
+    public Object getElePriceFromBill(ElePriceInfoModel param) {
+        // 处理时间
+        String startTime = param.getStartTime().replace("-","");
+        String endTime = param.getEndTime().replace("-","");
+        List<ElectricityBill> electricityBills = electricityBillMapper.selectList(
+                new LambdaQueryWrapper<ElectricityBill>()
+                .eq(ElectricityBill::getElectricityUserNumber, param.getElecNumber())
+                .between(ElectricityBill::getStatementDate, startTime, endTime));
+        List<Map<String, Object>> list = electricityBills.stream().map(e -> {
+            Map<String, Object> priceMap = new HashMap<>();
+            priceMap.put("price", e.getImplementElectricityPrices());
+            String date = e.getStatementDate().replaceAll("(\\d{4})(\\d{2})", "$1-$2");
+            priceMap.put("date", date);
+            return priceMap;
+        }).collect(Collectors.toList());
+        return list;
+    }
+
     private void analysisKeyWord(String keyWord,TypeAndQuery typeAndQuery){
         int querySymbol = 0;
         String type = EleConstant.LINE_TYPE_BG;