Browse Source

新增当日碳汇量

赵冬冬 4 years ago
parent
commit
f0f629cb39

+ 17 - 0
carbon-service/carbon-manager-client/src/main/java/com/hcloud/microserver/facade/carbon/entity/DayCarbonBO.java

@@ -0,0 +1,17 @@
+package com.hcloud.microserver.facade.carbon.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel
+public class DayCarbonBO implements Serializable {
+    @ApiModelProperty("碳汇量")
+    private long carbonNum;
+
+    @ApiModelProperty("订单数量")
+    private long orderNum;
+}

+ 10 - 0
carbon-service/carbon-manager-client/src/main/java/com/hcloud/microserver/facade/carbon/forms/DayCarbonFrom.java

@@ -0,0 +1,10 @@
+package com.hcloud.microserver.facade.carbon.forms;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class DayCarbonFrom implements Serializable {
+    private String dataFrom;
+}

+ 0 - 13
carbon-service/carbon-manager-service/src/main/java/com/hcloud/microserver/bank/bo/DayCarbonBO.java

@@ -1,13 +0,0 @@
-package com.hcloud.microserver.bank.bo;
-
-import lombok.Data;
-
-import java.io.Serializable;
-
-@Data
-public class DayCarbonBO implements Serializable {
-
-    private long carbonNum;
-
-    private long orderNum;
-}

+ 5 - 6
carbon-service/carbon-manager-service/src/main/java/com/hcloud/microserver/bank/controller/WebIndexController.java

@@ -1,14 +1,13 @@
 package com.hcloud.microserver.bank.controller;
 
-import com.hcloud.microserver.bank.bo.DayCarbonBO;
+import com.hcloud.microserver.facade.carbon.entity.DayCarbonBO;
 import com.hcloud.microserver.bank.service.WebIndexService;
 import com.hcloud.microserver.commoncore.base.BaseController;
 import com.hcloud.microserver.commoncore.base.ResultVO;
+import com.hcloud.microserver.facade.carbon.forms.DayCarbonFrom;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 @RestController
 @RequestMapping("/webindex")
@@ -19,8 +18,8 @@ public class WebIndexController extends BaseController {
 
     @ApiOperation("当日碳汇量")
     @PostMapping("/dayCarbon")
-    public ResultVO dayCarbon() {
-        DayCarbonBO dayCarbonBO = webIndexService.dayCarbon();
+    public ResultVO dayCarbon(@RequestBody DayCarbonFrom dayCarbonFrom) {
+        DayCarbonBO dayCarbonBO = webIndexService.dayCarbon(dayCarbonFrom);
         return success(dayCarbonBO);
     }
 }

+ 4 - 2
carbon-service/carbon-manager-service/src/main/java/com/hcloud/microserver/bank/dao/WebIndexMapper.java

@@ -1,9 +1,11 @@
 package com.hcloud.microserver.bank.dao;
 
-import com.hcloud.microserver.bank.bo.DayCarbonBO;
+import com.hcloud.microserver.facade.carbon.entity.DayCarbonBO;
+import com.hcloud.microserver.facade.carbon.forms.DayCarbonFrom;
+import org.apache.ibatis.annotations.Param;
 import org.mapstruct.Mapper;
 
 @Mapper
 public interface WebIndexMapper {
-    DayCarbonBO dayCarbon();
+    DayCarbonBO dayCarbon(@Param("dayCarbonFrom") DayCarbonFrom dayCarbonFrom);
 }

+ 3 - 2
carbon-service/carbon-manager-service/src/main/java/com/hcloud/microserver/bank/service/WebIndexService.java

@@ -1,8 +1,9 @@
 package com.hcloud.microserver.bank.service;
 
-import com.hcloud.microserver.bank.bo.DayCarbonBO;
+import com.hcloud.microserver.facade.carbon.entity.DayCarbonBO;
+import com.hcloud.microserver.facade.carbon.forms.DayCarbonFrom;
 
 public interface WebIndexService {
-    DayCarbonBO dayCarbon();
+    DayCarbonBO dayCarbon(DayCarbonFrom dayCarbonFrom);
 
 }

+ 4 - 3
carbon-service/carbon-manager-service/src/main/java/com/hcloud/microserver/bank/service/impl/WebIndexServiceImpl.java

@@ -1,8 +1,9 @@
 package com.hcloud.microserver.bank.service.impl;
 
-import com.hcloud.microserver.bank.bo.DayCarbonBO;
+import com.hcloud.microserver.facade.carbon.entity.DayCarbonBO;
 import com.hcloud.microserver.bank.dao.WebIndexMapper;
 import com.hcloud.microserver.bank.service.WebIndexService;
+import com.hcloud.microserver.facade.carbon.forms.DayCarbonFrom;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -12,7 +13,7 @@ public class WebIndexServiceImpl implements WebIndexService {
     private WebIndexMapper webIndexMapper;
 
     @Override
-    public DayCarbonBO dayCarbon() {
-        return webIndexMapper.dayCarbon();
+    public DayCarbonBO dayCarbon(DayCarbonFrom dayCarbonFrom) {
+        return webIndexMapper.dayCarbon(dayCarbonFrom);
     }
 }

+ 30 - 2
carbon-service/carbon-manager-service/src/main/resources/mappers/WebIndexService.xml

@@ -2,7 +2,35 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.hcloud.microserver.bank.dao.WebIndexMapper">
 
-    <select id="dayCarbon" resultType="com.hcloud.microserver.bank.bo.DayCarbonBO">
-
+    <select id="dayCarbon" resultType="com.hcloud.microserver.facade.carbon.entity.DayCarbonBO">
+        SELECT
+        tmp.*
+        FROM
+        (
+        SELECT
+        COUNT(b.guid) AS orderNum,
+        DATE_FORMAT(a.create_time, '%Y-%m-%d') AS createTime,
+        SUM(b.order_carbon_amount) AS carbonNum
+        FROM
+        t_goods_order_detail a
+        JOIN t_goods_order_info b ON a.fk_order_guid = b.guid
+        WHERE
+        b.order_status = 2
+        GROUP BY
+        DATE_FORMAT(a.create_time, '%Y-%m-%d')
+        ORDER BY
+        DATE_FORMAT(a.create_time, '%Y-%m-%d') ASC
+        ) tmp
+        WHERE
+        1 = 1
+        <choose>
+            <when test="dayCarbonFrom.dataFrom !=null and dayCarbonFrom.dataFrom !=''">
+                AND tmp.createTime = DATE_FORMAT(#{dayCarbonFrom.dataFrom}, '%Y-%m-%d')
+            </when>
+            <otherwise>
+                AND tmp.createTime = DATE_FORMAT(NOW(), '%Y-%m-%d')
+            </otherwise>
+        </choose>
+        LIMIT 1
     </select>
 </mapper>