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