From 24b2b6eb44be2844ca146bccaca9c6eabca24bc5 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 28 Jun 2021 22:46:50 +0800
Subject: [PATCH] modify
---
gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 55 insertions(+), 1 deletions(-)
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..022caf0 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
@@ -242,6 +242,7 @@
scoreDetails.setOriginalScore(score);
scoreDetails.setCurrentScore(remianScore);
scoreDetails.setChangeScore(totalPrice);
+ scoreDetails.setCreatedTime(new Date());
scoreDetailsMapper.insert(scoreDetails);
sku.setStock(sku.getStock() - addGoodsOrderDto.getCnt());
@@ -251,12 +252,51 @@
public Long cancelOrder(CancelOrderDto model) {
/**
- * todo 只更新了订单状态,后续操作待增加
+ * 更新订单状态
+ * 增加一条取消订单积分退回的记录
+ * 查询所有的订单详情,依次库存增加,销量减少
*/
ScoreOrder scoreOrder = new ScoreOrder();
scoreOrder.setId(model.getId());
scoreOrder.setStatus(ScoreOrder.STATUS_CANCEL);
scoreOrderMapper.updateByPrimaryKeySelective(scoreOrder);
+
+ ScoreOrder order = scoreOrderMapper.selectByPrimaryKey(model.getId());
+ Example exampleDetails = new Example(ScoreDetails.class);
+ Example.Criteria criteriaDetails = exampleDetails.createCriteria();
+ criteriaDetails.andEqualTo("orderNo",order.getOrderNo());
+ criteriaDetails.andEqualTo("userId",order.getUserId());
+ criteriaDetails.andEqualTo("type",ScoreDetails.SCORE_TYPE_SHOPPING);
+ ScoreDetails scoreDetails = scoreDetailsMapper.selectOneByExample(exampleDetails);
+ if(ObjectUtil.isNotEmpty(scoreDetails)){
+ AccountInfo accountInfo = accountInfoMapper.selectAccountInfoByUserId(order.getUserId());
+ BigDecimal score = new BigDecimal(accountInfo.getCollectScore());
+ BigDecimal remianScore = score.add(scoreDetails.getChangeScore()).setScale(0, BigDecimal.ROUND_DOWN);
+ ScoreDetails scoreDetailsRet = new ScoreDetails();
+ scoreDetailsRet.setOrderNo(scoreDetails.getOrderNo());
+ scoreDetailsRet.setUserId(scoreDetails.getUserId());
+ scoreDetailsRet.setType(ScoreDetails.SCORE_TYPE_SHOPPING_RETURN);
+ scoreDetailsRet.setOriginalScore(score);
+ scoreDetailsRet.setCurrentScore(remianScore);
+ scoreDetailsRet.setChangeScore(scoreDetails.getChangeScore());
+ scoreDetailsRet.setCreatedTime(new Date());
+ scoreDetailsMapper.insert(scoreDetailsRet);
+ }
+
+ Example exampleScoreOrderDetails = new Example(ScoreOrderDetails.class);
+ Example.Criteria criteriaScoreOrderDetails = exampleScoreOrderDetails.createCriteria();
+ criteriaScoreOrderDetails.andEqualTo("orderId",order.getId());
+ List<ScoreOrderDetails> scoreOrderDetails = scoreOrderDetailsMapper.selectByExample(exampleScoreOrderDetails);
+ if(CollUtil.isNotEmpty(scoreOrderDetails)){
+ for(ScoreOrderDetails scoreOrderDetail : scoreOrderDetails){
+ ScoreGoodsSku scoreGoodsSku = scoreGoodsSkuMapper.selectByPrimaryKey(scoreOrderDetail.getSkuId());
+ if(ObjectUtil.isNotEmpty(scoreGoodsSku)){
+ scoreGoodsSku.setStock(scoreGoodsSku.getStock() + scoreOrderDetail.getCnt());
+ scoreGoodsSku.setQuantity(scoreGoodsSku.getQuantity() - scoreOrderDetail.getCnt());
+ scoreGoodsSkuMapper.updateByPrimaryKey(scoreGoodsSku);
+ }
+ }
+ }
return scoreOrder.getId();
}
@@ -303,12 +343,26 @@
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());
+ scoreDetails.setUserId(userId);
+ scoreDetailsMapper.insert(scoreDetails);
+
accountInfo.setCollectScore(score.toString());
accountInfoMapper.updateByPrimaryKey(accountInfo);
+
+
// 减销量 加库存
List<ScoreOrderDetails> details = scoreOrderDetailsMapper.selectOrderDetailsByOrderId(order.getId());
if (CollUtil.isNotEmpty(details)) {
--
Gitblit v1.9.1