From e6667c792be898c41cda7d850dda02a403ef79c2 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 06 Apr 2023 10:35:20 +0800 Subject: [PATCH] 关于积分凭证 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | 77 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 77 insertions(+), 0 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java index 203a7bd..0a1ff03 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java @@ -4,6 +4,7 @@ import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.common.enumerates.FlowTypeEnum; import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; +import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; @@ -65,6 +66,18 @@ public IPage<AdminMallOrderInfoVo> getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request) { Page<AdminMallOrderInfoVo> page = new Page<>(request.getPageNum(), request.getPageSize()); IPage<AdminMallOrderInfoVo> adminMallOrderInfoVos = this.baseMapper.selectOrderListInPage(page, mallOrderInfo); +// List<AdminMallOrderInfoVo> records = adminMallOrderInfoVos.getRecords(); +// if(CollUtil.isNotEmpty(records)){ +// for(AdminMallOrderInfoVo adminMallOrderInfoVo : records){ +// Long id = adminMallOrderInfoVo.getId(); +// List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectbyOrderId(id); +// StringBuffer stringBuffer = new StringBuffer(); +// for(MallOrderItem mallOrderItem : mallOrderItemList){ +// stringBuffer.append(mallOrderItem.getGoodsName()+"*"+mallOrderItem.getCnt()+";"); +// } +// adminMallOrderInfoVo.setGoodsName(stringBuffer.toString()); +// } +// } return adminMallOrderInfoVos; } @@ -162,6 +175,19 @@ iApiMallMemberWalletService.addBalance(amount, mallOrderInfo.getMemberId()); mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), amount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); + + //积分池减少对应的数值 + String redisKey = "scorePool"; + String scorePoolRedis = redisUtils.getString(redisKey); + if(StrUtil.isBlank(scorePoolRedis)){ + redisUtils.set(redisKey,0,0L); + } + BigDecimal scorePoolOld = new BigDecimal(redisUtils.getString(redisKey)); + if(scorePoolOld.compareTo(amount) < 0){ + redisUtils.set(redisKey,0,0L); + }else{ + redisUtils.set(redisKey,scorePoolOld.subtract(amount).intValue(),0L); + } } MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation(); @@ -199,6 +225,7 @@ return new FebsResponse().success(); } + private final RedisUtils redisUtils; @Override public FebsResponse refundConfirm(Long id) { MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id); @@ -228,6 +255,18 @@ BigDecimal refundAmount = mallOrderRefund.getAmount(); //用户钱包增加对应的余额 iApiMallMemberWalletService.addBalance(refundAmount, mallOrderInfo.getMemberId()); + //积分池减少对应的数值 + String redisKey = "scorePool"; + String scorePoolRedis = redisUtils.getString(redisKey); + if(StrUtil.isBlank(scorePoolRedis)){ + redisUtils.set(redisKey,0,0L); + } + BigDecimal scorePoolOld = new BigDecimal(redisUtils.getString(redisKey)); + if(scorePoolOld.compareTo(refundAmount) < 0){ + redisUtils.set(redisKey,0,0L); + }else{ + redisUtils.set(redisKey,scorePoolOld.subtract(refundAmount).intValue(),0L); + } //新增一条资金流水 mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); @@ -394,6 +433,44 @@ } @Override + public FebsResponse delOrder(Long id) { + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(mallOrderInfo)){ + return new FebsResponse().fail().message("订单不存在,请刷新重试"); + } + Integer status = mallOrderInfo.getStatus(); + if(status != 7){ + return new FebsResponse().fail().message("订单不是已取消状态"); + } + mallOrderInfoMapper.deleteById(id); + return new FebsResponse().success(); + } + + @Override + public FebsResponse takeGoods(Long id) { + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(id); + if(ObjectUtil.isEmpty(mallOrderInfo)){ + return new FebsResponse().fail().message("订单不存在,刷新后重试"); + } + Integer status = mallOrderInfo.getStatus(); + if(2 != status){ + return new FebsResponse().fail().message("订单不是待发货状态"); + } + + mallOrderInfo.setStatus(3); + mallOrderInfoMapper.updateById(mallOrderInfo); + return new FebsResponse().success(); + } + + @Override + public IPage<AdminMallMoneyFlowVo> orderMoneyFlow(QueryRequest request, MallOrderInfo mallOrderInfo) { + MallOrderInfo mallOrder = this.baseMapper.selectById(mallOrderInfo.getId()); + Page<AdminMallMoneyFlowVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminMallMoneyFlowVo> adminMallMoneyFlowVos = mallMoneyFlowMapper.selectOrderMoneyFlowInPage(page, mallOrder); + return adminMallMoneyFlowVos; + } + + @Override public void deliverGoodsByOrderNo(DeliverGoodsDto deliverGoodsDto) { MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectByOrderNo(deliverGoodsDto.getOrderNo()); if (mallOrderInfo == null) { -- Gitblit v1.9.1