From 62e4461469142f89c2aba304a9f13f9d94d0fa4c Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Sat, 26 Jun 2021 15:46:20 +0800
Subject: [PATCH] add scoreDetail and modify

---
 gc-shop/src/main/java/com/xzx/gc/shop/service/ScoreDetailsService.java   |   19 ++++++
 gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxScoreDetailsVo.java          |   24 ++++++++
 gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreDetailsMapper.java     |    3 +
 gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java |    7 +-
 gc-shop/src/main/java/com/xzx/gc/shop/dto/XcxScoreDetailsDto.java        |   19 ++++++
 gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java          |   13 ++++
 gc-shop/src/main/resources/mapper/shop/ScoreDetailsMapper.xml            |    8 ++
 gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiScoreController.java |   38 ++++++++++++
 8 files changed, 128 insertions(+), 3 deletions(-)

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 ecf8941..5689033 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
@@ -8,11 +8,14 @@
 import com.xzx.gc.service.BaseAccountService;
 import com.xzx.gc.shop.dto.AddGoodsOrderDto;
 import com.xzx.gc.shop.dto.XcxGoodsListDto;
+import com.xzx.gc.shop.dto.XcxScoreDetailsDto;
 import com.xzx.gc.shop.service.GoodsService;
 import com.xzx.gc.shop.service.OrderService;
+import com.xzx.gc.shop.service.ScoreDetailsService;
 import com.xzx.gc.shop.vo.GoodsCategoryVo;
 import com.xzx.gc.shop.vo.XcxGoodsDetailVo;
 import com.xzx.gc.shop.vo.XcxGoodsListVo;
+import com.xzx.gc.shop.vo.XcxScoreDetailsVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
@@ -23,6 +26,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
+import java.util.Map;
 
 @RestController
 @Api(tags = {"积分商城--API商品管理"})
@@ -31,9 +35,6 @@
 
     @Autowired
     private GoodsService goodsService;
-
-    @Autowired
-    private OrderService orderService;
 
     @ApiOperation("分类列表")
     @ApiResponses(
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiScoreController.java b/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiScoreController.java
new file mode 100644
index 0000000..5d1ae78
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiScoreController.java
@@ -0,0 +1,38 @@
+package com.xzx.gc.shop.controller;
+
+import com.xzx.gc.common.request.BaseController;
+import com.xzx.gc.model.JsonResult;
+import com.xzx.gc.shop.dto.XcxScoreDetailsDto;
+import com.xzx.gc.shop.service.ScoreDetailsService;
+import com.xzx.gc.shop.vo.XcxScoreDetailsVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+@RestController
+@Api(tags = {"积分商城--API积分管理"})
+@Slf4j
+public class ApiScoreController extends BaseController {
+
+    @Autowired
+    private ScoreDetailsService scoreDetailsService;
+
+    @ApiOperation("积分明细")
+    @ApiResponses(
+            @ApiResponse(code = 200, message = "success", response = XcxScoreDetailsVo.class)
+    )
+    @PostMapping(value = "/score/details")
+    public JsonResult<Map<String, Object>> scoreDetails(@RequestBody XcxScoreDetailsDto scoreDetailsDto, HttpServletRequest request) {
+        scoreDetailsDto.setUserId(getUserId(request));
+        return JsonResult.success(scoreDetailsService.scoreDetails(scoreDetailsDto));
+    }
+}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/dto/XcxScoreDetailsDto.java b/gc-shop/src/main/java/com/xzx/gc/shop/dto/XcxScoreDetailsDto.java
new file mode 100644
index 0000000..91c7b17
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/dto/XcxScoreDetailsDto.java
@@ -0,0 +1,19 @@
+package com.xzx.gc.shop.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "XcxScoreDetailsDto", description = "小程序积分明细参数接收类")
+public class XcxScoreDetailsDto {
+
+    @ApiModelProperty(value="页码")
+    private int pageNo=1;
+
+    @ApiModelProperty(value="每页显示记录数")
+    private int pageSize=10;
+
+    @ApiModelProperty(hidden = true)
+    private String userId;
+}
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 7cc18e2..68a0d0e 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
@@ -2,7 +2,9 @@
 
 import com.xzx.gc.entity.ScoreDetails;
 import com.xzx.gc.shop.dto.QueryScoreDetailsListDto;
+import com.xzx.gc.shop.dto.XcxScoreDetailsDto;
 import com.xzx.gc.shop.vo.QueryScoreDetailsListVo;
+import com.xzx.gc.shop.vo.XcxScoreDetailsVo;
 import com.xzx.gc.util.GcMapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -12,4 +14,5 @@
 
     List<QueryScoreDetailsListVo> queryScoreDetailsList(@Param("record") QueryScoreDetailsListDto model);
 
+    List<XcxScoreDetailsVo> selectXcxScoreDetailsList(@Param("record") XcxScoreDetailsDto xcxScoreDetailsDto);
 }
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 6de16dc..b63101c 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
@@ -303,12 +303,25 @@
 
         scoreOrderMapper.updateOrderStatus(id, ScoreOrder.STATUS_CANCEL, userId);
 
+
         // 退积分
         AccountInfo accountInfo = accountInfoMapper.selectAccountInfoByUserId(userId);
         BigDecimal score = new BigDecimal(accountInfo.getCollectScore()).add(order.getTotalPrice()).setScale(0, BigDecimal.ROUND_DOWN);
+
+        ScoreDetails scoreDetails = new ScoreDetails();
+        scoreDetails.setOriginalScore(new BigDecimal(accountInfo.getCollectScore()));
+        scoreDetails.setCurrentScore(score);
+        scoreDetails.setChangeScore(order.getTotalPrice());
+        scoreDetails.setOrderNo(order.getOrderNo());
+        scoreDetails.setType(ScoreDetails.SCORE_TYPE_SHOPPING_RETURN);
+        scoreDetails.setCreatedTime(new Date());
+        scoreDetailsMapper.insert(scoreDetails);
+
         accountInfo.setCollectScore(score.toString());
         accountInfoMapper.updateByPrimaryKey(accountInfo);
 
+
+
         // 减销量 加库存
         List<ScoreOrderDetails> details = scoreOrderDetailsMapper.selectOrderDetailsByOrderId(order.getId());
         if (CollUtil.isNotEmpty(details)) {
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/service/ScoreDetailsService.java b/gc-shop/src/main/java/com/xzx/gc/shop/service/ScoreDetailsService.java
index a002286..1df7957 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/service/ScoreDetailsService.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/service/ScoreDetailsService.java
@@ -5,11 +5,16 @@
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.xzx.gc.common.utils.StringUtils;
+import com.xzx.gc.entity.AccountInfo;
 import com.xzx.gc.shop.dto.QueryScoreDetailsListDto;
+import com.xzx.gc.shop.dto.XcxScoreDetailsDto;
+import com.xzx.gc.shop.mapper.AccountInfoMapper;
 import com.xzx.gc.shop.mapper.ScoreDetailsMapper;
 import com.xzx.gc.shop.vo.QueryOrderListVo;
 import com.xzx.gc.shop.vo.QueryScoreDetailsListVo;
+import com.xzx.gc.shop.vo.XcxScoreDetailsVo;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -25,6 +30,9 @@
 
     @Resource
     ScoreDetailsMapper scoreDetailsMapper;
+
+    @Autowired
+    private AccountInfoMapper accountInfoMapper;
 
     public Map<String, Object> queryScoreDetailsList(QueryScoreDetailsListDto model) {
         PageHelper.startPage(model.getPage(), model.getLimit());
@@ -44,5 +52,16 @@
         return map;
     }
 
+    public Map<String, Object> scoreDetails(XcxScoreDetailsDto xcxScoreDetailsDto) {
+        PageHelper.startPage(xcxScoreDetailsDto.getPageNo(), xcxScoreDetailsDto.getPageSize());
+        List<XcxScoreDetailsVo> details = scoreDetailsMapper.selectXcxScoreDetailsList(xcxScoreDetailsDto);
+
+        AccountInfo accountInfo = accountInfoMapper.selectAccountInfoByUserId(xcxScoreDetailsDto.getUserId());
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("score", accountInfo.getCollectScore());
+        map.put("data", details);
+        return map;
+    }
 
 }
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxScoreDetailsVo.java b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxScoreDetailsVo.java
new file mode 100644
index 0000000..18ed7ad
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxScoreDetailsVo.java
@@ -0,0 +1,24 @@
+package com.xzx.gc.shop.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel(value = "XcxScoreDetailsVo", description = "小程序积分明细返回参数类")
+public class XcxScoreDetailsVo {
+
+    @ApiModelProperty(value = "类型 1-用户充值2-集物员支付3-用户兑换所得4-用户消费5-消费退回6-管理员充值7-其他")
+    private Integer type;
+
+    @ApiModelProperty(value = "时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date createdTime;
+
+    @ApiModelProperty(value = "变动积分")
+    private BigDecimal score;
+}
diff --git a/gc-shop/src/main/resources/mapper/shop/ScoreDetailsMapper.xml b/gc-shop/src/main/resources/mapper/shop/ScoreDetailsMapper.xml
index cbc3545..c2a2c9b 100644
--- a/gc-shop/src/main/resources/mapper/shop/ScoreDetailsMapper.xml
+++ b/gc-shop/src/main/resources/mapper/shop/ScoreDetailsMapper.xml
@@ -27,4 +27,12 @@
         order by a.CREATED_TIME desc
     </select>
 
+    <select id="selectXcxScoreDetailsList" resultType="com.xzx.gc.shop.vo.XcxScoreDetailsVo">
+        select
+            *
+            ,change_score score
+        from xzx_score_details
+        where user_id=#{record.userId}
+        order by id desc
+    </select>
 </mapper>

--
Gitblit v1.9.1