From 44400f2f3427791c5382b02d70c4c0ef8d0c49ed Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 30 Jun 2021 14:47:41 +0800
Subject: [PATCH] Merge branch 'score-shop' of http://120.27.238.55:7000/r/xzx into score-shop

---
 gc-shop/src/main/resources/application-xc.yml                            |    2 
 gc-shop/src/main/resources/mapper/shop/ScoreGoodsMapper.xml              |    2 
 gc-pay/src/main/resources/application-xc.yml                             |    2 
 gc-sys/src/main/resources/application-xc.yml                             |    2 
 gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java |    4 ++
 gc-role/src/main/resources/application-xc.yml                            |    2 
 gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreOrderMapper.java       |    3 +
 gc-shop/src/main/resources/mapper/shop/ScoreDetailsMapper.xml            |    6 +++
 gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxOrderDetailsVo.java          |   10 ++++
 gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiOrderController.java |   11 +++--
 gc-order/src/main/resources/application-xc.yml                           |    2 
 gc-core/src/main/java/com/xzx/gc/config/SwaggerConfig.java               |    2 
 gc-user/src/main/resources/application-xc.yml                            |    2 
 gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreDetailsMapper.java     |    3 +
 gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java          |   19 +++++++++
 gc-shop/src/main/java/com/xzx/gc/shop/vo/StatisticsVo.java               |   30 +++++++++++++++
 gc-shop/src/main/resources/mapper/shop/ScoreOrderMapper.xml              |   17 ++++++++
 17 files changed, 106 insertions(+), 13 deletions(-)

diff --git a/gc-core/src/main/java/com/xzx/gc/config/SwaggerConfig.java b/gc-core/src/main/java/com/xzx/gc/config/SwaggerConfig.java
index ecca06c..0724174 100644
--- a/gc-core/src/main/java/com/xzx/gc/config/SwaggerConfig.java
+++ b/gc-core/src/main/java/com/xzx/gc/config/SwaggerConfig.java
@@ -31,7 +31,7 @@
  */
 @Configuration
 @EnableSwagger2
-@Profile(value = {"dev","test","check", "xctest"})
+@Profile(value = {"dev","test","check", "xctest", "xc"})
 public class SwaggerConfig {
 
 
diff --git a/gc-order/src/main/resources/application-xc.yml b/gc-order/src/main/resources/application-xc.yml
index f5befb2..e5ff4e5 100644
--- a/gc-order/src/main/resources/application-xc.yml
+++ b/gc-order/src/main/resources/application-xc.yml
@@ -6,7 +6,7 @@
     password: 123456
     virtual-host: /
   datasource:
-    url: jdbc:mysql://120.27.238.55:3306/db_xzx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useAffectedRows=true
+    url: jdbc:mysql://120.27.238.55:3306/db_xzx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useAffectedRows=true&serverTimezone=GMT%2b8
     username: ct_test
     password: 123456
   redis:
diff --git a/gc-pay/src/main/resources/application-xc.yml b/gc-pay/src/main/resources/application-xc.yml
index 96b087e..8cb6c1c 100644
--- a/gc-pay/src/main/resources/application-xc.yml
+++ b/gc-pay/src/main/resources/application-xc.yml
@@ -6,7 +6,7 @@
     password: 123456
     virtual-host: /
   datasource:
-    url: jdbc:mysql://120.27.238.55:3306/db_xzx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useAffectedRows=true
+    url: jdbc:mysql://120.27.238.55:3306/db_xzx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useAffectedRows=true&serverTimezone=GMT%2b8
     username: ct_test
     password: 123456
   redis:
diff --git a/gc-role/src/main/resources/application-xc.yml b/gc-role/src/main/resources/application-xc.yml
index f5befb2..e5ff4e5 100644
--- a/gc-role/src/main/resources/application-xc.yml
+++ b/gc-role/src/main/resources/application-xc.yml
@@ -6,7 +6,7 @@
     password: 123456
     virtual-host: /
   datasource:
-    url: jdbc:mysql://120.27.238.55:3306/db_xzx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useAffectedRows=true
+    url: jdbc:mysql://120.27.238.55:3306/db_xzx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useAffectedRows=true&serverTimezone=GMT%2b8
     username: ct_test
     password: 123456
   redis:
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java b/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java
index 72c0810..2d92486 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java
@@ -3,6 +3,7 @@
 
 import com.github.pagehelper.PageInfo;
 import com.xzx.gc.common.Result;
+import com.xzx.gc.common.annotations.PassToken;
 import com.xzx.gc.common.request.BaseController;
 import com.xzx.gc.model.JsonResult;
 import com.xzx.gc.service.BaseAccountService;
@@ -31,6 +32,7 @@
     @Autowired
     private GoodsService goodsService;
 
+    @PassToken
     @ApiOperation("分类列表")
     @ApiResponses(
             @ApiResponse(code = 200, message = "success", response = GoodsCategoryVo.class)
@@ -40,6 +42,7 @@
         return JsonResult.success(goodsService.findCategoryWithChildren());
     }
 
+    @PassToken
     @ApiOperation("商品列表")
     @ApiResponses(
             @ApiResponse(code = 200, message = "success", response = XcxGoodsListVo.class)
@@ -51,6 +54,7 @@
         return JsonResult.success(goodsService.findGoodsListInPage(xcxGoodsListDto));
     }
 
+    @PassToken
     @ApiOperation("商品详情")
     @ApiResponses(
             @ApiResponse(code = 200, message = "success", response = XcxGoodsDetailVo.class)
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiOrderController.java b/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiOrderController.java
index b23645d..a6c5aac 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiOrderController.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiOrderController.java
@@ -8,6 +8,7 @@
 import com.xzx.gc.shop.dto.AddGoodsOrderDto;
 import com.xzx.gc.shop.dto.XcxOrderListDto;
 import com.xzx.gc.shop.service.OrderService;
+import com.xzx.gc.shop.vo.StatisticsVo;
 import com.xzx.gc.shop.vo.XcxOrderDetailsVo;
 import com.xzx.gc.shop.vo.XcxOrderListVo;
 import io.swagger.annotations.Api;
@@ -16,10 +17,7 @@
 import io.swagger.annotations.ApiResponses;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -79,4 +77,9 @@
     }
 
 
+    @ApiOperation("首页统计")
+    @GetMapping(value = "/order/statistics")
+    public JsonResult<StatisticsVo> orderStatistics(HttpServletRequest request) {
+        return JsonResult.success(orderService.orderStatistics(getUserId(request)));
+    }
 }
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreDetailsMapper.java b/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreDetailsMapper.java
index 68a0d0e..40e538d 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreDetailsMapper.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreDetailsMapper.java
@@ -8,6 +8,7 @@
 import com.xzx.gc.util.GcMapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 public interface ScoreDetailsMapper extends GcMapper<ScoreDetails> {
@@ -15,4 +16,6 @@
     List<QueryScoreDetailsListVo> queryScoreDetailsList(@Param("record") QueryScoreDetailsListDto model);
 
     List<XcxScoreDetailsVo> selectXcxScoreDetailsList(@Param("record") XcxScoreDetailsDto xcxScoreDetailsDto);
+
+    BigDecimal selectTotalScoreByUserId(@Param("userId") String userId, @Param("type") Integer type);
 }
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreOrderMapper.java b/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreOrderMapper.java
index 6ee3b29..ced9e9b 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreOrderMapper.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreOrderMapper.java
@@ -11,6 +11,7 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 public interface ScoreOrderMapper extends GcMapper<ScoreOrder> {
 
@@ -25,4 +26,6 @@
     XcxOrderDetailsVo selectXcxOrderDetails(@Param("id") Long id);
 
     int updateOrderStatus(@Param("id") Long id, @Param("status") Integer status, @Param("userId") String userId);
+
+    Map<String, Object> selectOrderStastics(@Param("userId") String userId);
 }
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java b/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java
index b9d4ab1..862975d 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java
@@ -382,4 +382,23 @@
             }
         }
     }
+
+    public StatisticsVo orderStatistics(String userId) {
+        BigDecimal score = scoreDetailsMapper.selectTotalScoreByUserId(userId, ScoreDetails.SCORE_TYPE_EXCHANGE);
+
+        Map<String, Object> userData = scoreOrderMapper.selectOrderStastics(userId);
+        Map<String, Object> allData = scoreOrderMapper.selectOrderStastics(null);
+
+        StatisticsVo statisticsVo = new StatisticsVo();
+        statisticsVo.setScore(score);
+        BigDecimal userPrice = (BigDecimal) userData.get("totalPrice");
+        statisticsVo.setReduceCarbon(userPrice.divide(BigDecimal.TEN, 2, BigDecimal.ROUND_DOWN));
+        statisticsVo.setOrderCnt(Integer.parseInt(userData.get("totalOrder").toString()));
+
+        BigDecimal totalPrice = (BigDecimal) allData.get("totalPrice");
+        statisticsVo.setTotalReduceCarbon(totalPrice.divide(BigDecimal.TEN, 2, BigDecimal.ROUND_DOWN));
+        statisticsVo.setTotalOrderCnt(Integer.parseInt(allData.get("totalOrder").toString()));
+        statisticsVo.setTotalBuyCnt(Integer.parseInt(allData.get("totalBuy").toString()));
+        return statisticsVo;
+    }
 }
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/vo/StatisticsVo.java b/gc-shop/src/main/java/com/xzx/gc/shop/vo/StatisticsVo.java
new file mode 100644
index 0000000..7741069
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/vo/StatisticsVo.java
@@ -0,0 +1,30 @@
+package com.xzx.gc.shop.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "StatisticsVo", description = "统计")
+public class StatisticsVo {
+
+    @ApiModelProperty(value = "个人参与次数")
+    private Integer orderCnt;
+
+    @ApiModelProperty(value = "获得积分")
+    private BigDecimal score;
+
+    @ApiModelProperty(value = "减少碳排放量")
+    private BigDecimal reduceCarbon;
+
+    @ApiModelProperty(value = "用户参与次数")
+    private Integer totalOrderCnt;
+
+    @ApiModelProperty(value = "积分兑换次数")
+    private Integer totalBuyCnt;
+
+    @ApiModelProperty(value = "总减少排放量")
+    private BigDecimal totalReduceCarbon;
+}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxOrderDetailsVo.java b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxOrderDetailsVo.java
index b751713..85be79d 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxOrderDetailsVo.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxOrderDetailsVo.java
@@ -1,5 +1,6 @@
 package com.xzx.gc.shop.vo;
 
+import cn.hutool.core.date.DateUtil;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -17,7 +18,10 @@
 
     @ApiModelProperty(value = "下单时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
-    private Date createTime;
+    private Date createdTime;
+
+    @ApiModelProperty(value = "下单时间")
+    private String createTime;
 
     @ApiModelProperty(value = "缩略图")
     private String thumb;
@@ -59,4 +63,8 @@
     private String phone;
 
 
+    public void setCreatedTime(Date createdTime) {
+        this.createdTime = createdTime;
+        this.createTime = DateUtil.format(createdTime, "yyyy-MM-dd HH:mm:ss");
+    }
 }
diff --git a/gc-shop/src/main/resources/application-xc.yml b/gc-shop/src/main/resources/application-xc.yml
index f5befb2..e5ff4e5 100644
--- a/gc-shop/src/main/resources/application-xc.yml
+++ b/gc-shop/src/main/resources/application-xc.yml
@@ -6,7 +6,7 @@
     password: 123456
     virtual-host: /
   datasource:
-    url: jdbc:mysql://120.27.238.55:3306/db_xzx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useAffectedRows=true
+    url: jdbc:mysql://120.27.238.55:3306/db_xzx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useAffectedRows=true&serverTimezone=GMT%2b8
     username: ct_test
     password: 123456
   redis:
diff --git a/gc-shop/src/main/resources/mapper/shop/ScoreDetailsMapper.xml b/gc-shop/src/main/resources/mapper/shop/ScoreDetailsMapper.xml
index c2a2c9b..93d7783 100644
--- a/gc-shop/src/main/resources/mapper/shop/ScoreDetailsMapper.xml
+++ b/gc-shop/src/main/resources/mapper/shop/ScoreDetailsMapper.xml
@@ -35,4 +35,10 @@
         where user_id=#{record.userId}
         order by id desc
     </select>
+
+    <select id="selectTotalScoreByUserId" resultType="java.math.BigDecimal">
+        select sum(change_score)
+        from xzx_score_details
+        where user_id=#{userId} and type=#{type}
+    </select>
 </mapper>
diff --git a/gc-shop/src/main/resources/mapper/shop/ScoreGoodsMapper.xml b/gc-shop/src/main/resources/mapper/shop/ScoreGoodsMapper.xml
index 10496b2..2937f41 100644
--- a/gc-shop/src/main/resources/mapper/shop/ScoreGoodsMapper.xml
+++ b/gc-shop/src/main/resources/mapper/shop/ScoreGoodsMapper.xml
@@ -47,7 +47,7 @@
         <where>
             a.del_flag=0 and a.is_sale=1
             <if test="record.minScore != null" >
-                and b.present_price >= #{minScore}
+                and b.present_price >= #{record.minScore}
             </if>
             <if test="record.maxScore != null">
                 and #{record.maxScore} > b.present_price
diff --git a/gc-shop/src/main/resources/mapper/shop/ScoreOrderMapper.xml b/gc-shop/src/main/resources/mapper/shop/ScoreOrderMapper.xml
index d0c4f51..2771b0f 100644
--- a/gc-shop/src/main/resources/mapper/shop/ScoreOrderMapper.xml
+++ b/gc-shop/src/main/resources/mapper/shop/ScoreOrderMapper.xml
@@ -82,4 +82,21 @@
         set status=#{status}
         where id=#{id} and user_id=#{userId}
     </update>
+
+    <select id="selectOrderStastics" resultType="java.util.Map">
+        select
+            IFNULL(count(1), 0) totalBuy,
+            IFNULL(sum(IFNULL(total_price,0)),0) totalPrice,
+            (
+                select IFNULL(count(1),0) from xzx_jhy_order where status = 3
+                <if test="userId != null and userId != ''">
+                    and user_id=#{userId}
+                </if>
+            ) totalOrder
+        from xzx_score_order
+        where status=3
+        <if test="userId != null and userId != ''">
+            and user_id=#{userId}
+        </if>
+    </select>
 </mapper>
diff --git a/gc-sys/src/main/resources/application-xc.yml b/gc-sys/src/main/resources/application-xc.yml
index f5befb2..e5ff4e5 100644
--- a/gc-sys/src/main/resources/application-xc.yml
+++ b/gc-sys/src/main/resources/application-xc.yml
@@ -6,7 +6,7 @@
     password: 123456
     virtual-host: /
   datasource:
-    url: jdbc:mysql://120.27.238.55:3306/db_xzx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useAffectedRows=true
+    url: jdbc:mysql://120.27.238.55:3306/db_xzx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useAffectedRows=true&serverTimezone=GMT%2b8
     username: ct_test
     password: 123456
   redis:
diff --git a/gc-user/src/main/resources/application-xc.yml b/gc-user/src/main/resources/application-xc.yml
index f5befb2..e5ff4e5 100644
--- a/gc-user/src/main/resources/application-xc.yml
+++ b/gc-user/src/main/resources/application-xc.yml
@@ -6,7 +6,7 @@
     password: 123456
     virtual-host: /
   datasource:
-    url: jdbc:mysql://120.27.238.55:3306/db_xzx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useAffectedRows=true
+    url: jdbc:mysql://120.27.238.55:3306/db_xzx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useAffectedRows=true&serverTimezone=GMT%2b8
     username: ct_test
     password: 123456
   redis:

--
Gitblit v1.9.1