From cdabe8b7b132b8d947020fa6e528c8d3dbfa9b41 Mon Sep 17 00:00:00 2001 From: gongzuming <gongzuming> Date: 星期一, 02 九月 2024 16:11:29 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master-v2' into master-v2 --- src/main/resources/script/db-v2.sql | 2 + src/main/java/com/mzl/flower/service/payment/OrderService.java | 11 +++++ src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java | 24 +++++++++++ src/main/java/com/mzl/flower/web/point/PointGoodsController.java | 12 +++--- src/main/java/com/mzl/flower/service/point/PointGoodsService.java | 32 +++++++++++----- 5 files changed, 63 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/mzl/flower/service/payment/OrderService.java b/src/main/java/com/mzl/flower/service/payment/OrderService.java index ca0a23a..75609cc 100644 --- a/src/main/java/com/mzl/flower/service/payment/OrderService.java +++ b/src/main/java/com/mzl/flower/service/payment/OrderService.java @@ -43,6 +43,7 @@ import com.mzl.flower.service.flower.FlowerService; import com.mzl.flower.service.menber.MemberGrowthRecordService; import com.mzl.flower.service.point.CustomerPointService; +import com.mzl.flower.service.point.PointGoodsService; import com.mzl.flower.service.system.CodeService; import com.mzl.flower.service.system.WeChatService; import com.mzl.flower.service.transport.TransportService; @@ -146,6 +147,9 @@ @Autowired private CustomerPointService customerPointService; + + @Autowired + private PointGoodsService pointGoodsService; public void changeFlower2Cart(CartSaveDTO dto) { String userId = SecurityUtils.getUserId(); @@ -503,7 +507,12 @@ } private void usePointGoods(String orderId, List<Long> goodsRecordIdList){ - //TODO 使用积分商品兑换券 + //使用积分商品兑换券 + if(goodsRecordIdList != null && goodsRecordIdList.size() > 0){ + for(Long grId : goodsRecordIdList){ + pointGoodsService.useExchangeGoods(grId, orderId); + } + } } /** diff --git a/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java b/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java index f9ae5d7..8b75506 100644 --- a/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java +++ b/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java @@ -16,6 +16,7 @@ import com.mzl.flower.mapper.system.UserWechatMapper; import com.mzl.flower.service.BaseService; import com.mzl.flower.service.flower.FlowerService; +import com.mzl.flower.service.point.PointGoodsService; import com.mzl.flower.utils.UUIDGenerator; import com.wechat.pay.java.core.notification.NotificationParser; import com.wechat.pay.java.core.notification.RequestParam; @@ -103,6 +104,12 @@ @Autowired private OrderRefundMapper orderRefundMapper; + + @Autowired + private OrderPointGoodsMapper orderPointGoodsMapper; + + @Autowired + private PointGoodsService pointGoodsService; /** * 微信预支付 @@ -439,8 +446,23 @@ } private void releasePrepayLock(Order order){ - log.info("恢复库存: " + order); + log.info("恢复库存 积分商品兑换券 优惠券: " + order); revertFlowerStock(order.getId()); + + //恢复积分商品兑换券 + revertPointGoodsRecord(order.getId()); + + //TODO 恢复优惠券 + } + + private void revertPointGoodsRecord(String orderId){ + List<OrderPointGoods> ls = orderPointGoodsMapper.selectList(new QueryWrapper<OrderPointGoods>() + .eq("order_id", orderId)); + if(ls != null && ls.size() > 0){ + for(OrderPointGoods pg : ls){ + pointGoodsService.revertExchangeGoods(pg.getGoodsRecordId()); + } + } } public Map payAgain(String orderId){ diff --git a/src/main/java/com/mzl/flower/service/point/PointGoodsService.java b/src/main/java/com/mzl/flower/service/point/PointGoodsService.java index d7cca87..4c2ab59 100644 --- a/src/main/java/com/mzl/flower/service/point/PointGoodsService.java +++ b/src/main/java/com/mzl/flower/service/point/PointGoodsService.java @@ -71,8 +71,14 @@ return p.getId(); } - public void deletePointGoods(Long id){ - pointGoodsMapper.deleteById(id); + public void deletePointGoods(String idStr){ + List<String> ids = splitParam(idStr); + if (ids != null && ids.size() > 0) { + for(String idd : ids) { + Long id = Long.parseLong(idd); + pointGoodsMapper.deleteById(id); + } + } } public Page<PointGoodsListDTO> selectGoodsList(Page page, PointGoodsQueryDTO dto){ @@ -94,15 +100,21 @@ return dto; } - public void updateStatus(Long id, String status){ - PointGoods p = pointGoodsMapper.selectById(id); - if(p == null){ - throw new ValidationException("商品未找到"); - } + public void updateStatus(String idStr, String status){ + List<String> ids = splitParam(idStr); + if(ids != null && ids.size() > 0) { + for(String idd : ids) { + Long id = Long.parseLong(idd); + PointGoods p = pointGoodsMapper.selectById(id); + if (p == null) { + continue; + } - p.setStatus(status); - p.update(SecurityUtils.getUserId()); - pointGoodsMapper.updateById(p); + p.setStatus(status); + p.update(SecurityUtils.getUserId()); + pointGoodsMapper.updateById(p); + } + } } public synchronized void exchangeGoods(ExchangeGoodsDTO dto) { diff --git a/src/main/java/com/mzl/flower/web/point/PointGoodsController.java b/src/main/java/com/mzl/flower/web/point/PointGoodsController.java index 97614f8..5368dbd 100644 --- a/src/main/java/com/mzl/flower/web/point/PointGoodsController.java +++ b/src/main/java/com/mzl/flower/web/point/PointGoodsController.java @@ -61,9 +61,9 @@ @GetMapping("/list/delete") @ApiOperation(value = "商品删除") @ApiImplicitParams({ - @ApiImplicitParam(name = "id", value = "商品id", required = true, dataType = "Long", paramType = "query") + @ApiImplicitParam(name = "id", value = "商品id", required = true, dataType = "String", paramType = "query") }) - public ResponseEntity<ReturnDataDTO<?>> deletePointGoods(Long id) { + public ResponseEntity<ReturnDataDTO<?>> deletePointGoods(String id) { pointGoodsService.deletePointGoods(id); return returnData(R.SUCCESS.getCode(), null); } @@ -71,9 +71,9 @@ @GetMapping("/list/on") @ApiOperation(value = "商品上架") @ApiImplicitParams({ - @ApiImplicitParam(name = "id", value = "商品id", required = true, dataType = "Long", paramType = "query") + @ApiImplicitParam(name = "id", value = "商品id", required = true, dataType = "String", paramType = "query") }) - public ResponseEntity<ReturnDataDTO<?>> upGoods(Long id) { + public ResponseEntity<ReturnDataDTO<?>> upGoods(String id) { pointGoodsService.updateStatus(id, Constants.POINT_GOODS_STATUS.A.name()); return returnData(R.SUCCESS.getCode(), null); } @@ -81,9 +81,9 @@ @GetMapping("/list/off") @ApiOperation(value = "商品下架") @ApiImplicitParams({ - @ApiImplicitParam(name = "id", value = "商品id", required = true, dataType = "Long", paramType = "query") + @ApiImplicitParam(name = "id", value = "商品id", required = true, dataType = "String", paramType = "query") }) - public ResponseEntity<ReturnDataDTO<?>> offGoods(Long id) { + public ResponseEntity<ReturnDataDTO<?>> offGoods(String id) { pointGoodsService.updateStatus(id, Constants.POINT_GOODS_STATUS.I.name()); return returnData(R.SUCCESS.getCode(), null); } diff --git a/src/main/resources/script/db-v2.sql b/src/main/resources/script/db-v2.sql index c8c0f76..12c75ef 100644 --- a/src/main/resources/script/db-v2.sql +++ b/src/main/resources/script/db-v2.sql @@ -13,6 +13,8 @@ ALTER TABLE `t_order_item` ADD `original_price` DECIMAL(11,2) COMMENT '优惠前售价/扎'; ALTER TABLE `t_order_item` ADD `real_price` DECIMAL(11,2) COMMENT '真实成交价格/每扎'; +INSERT INTO t_code_value(ID,TYPE_CODE,VALUE,LABEL,DESCRIPTION,SEQ,STATUS) VALUES ('POINT_GOODS_STATUS_A','POINT_GOODS_STATUS','A','上架','上架',1,'A'); +INSERT INTO t_code_value(ID,TYPE_CODE,VALUE,LABEL,DESCRIPTION,SEQ,STATUS) VALUES ('POINT_GOODS_STATUS_I','POINT_GOODS_STATUS','I','下架','下架',2,'A'); -- Gitblit v1.9.3