From 02d5cf98ab127c3464ecc6fb9342b2d700e4a0de Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期二, 08 四月 2025 19:03:46 +0800 Subject: [PATCH] 订单代码修改 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 86 +++++++++++++++++++++++++++++-------------- 1 files changed, 58 insertions(+), 28 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java index 90ec3d6..73c5254 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java @@ -107,7 +107,7 @@ private RedisTemplate redisTemplate; @Resource - private ShopBalanceStatment shopBalanceStatment; + private ShopBalanceStatementClient shopBalanceStatementClient; @Resource private SystemConfigClient systemConfigClient; @@ -401,9 +401,9 @@ } if (0 != order.getPoint()) {//使用的积分是否为0 - Integer lavePoint = appUser.getLavePoint(); + Integer lavePoint = appUser.getAvailablePoint(); //积分退款 - appUser.setLavePoint(appUser.getLavePoint() + order.getPoint()); + appUser.setAvailablePoint(appUser.getAvailablePoint() + order.getPoint()); appUser.setAvailablePoint(appUser.getAvailablePoint() + order.getPoint()); UserPoint userPoint1 = new UserPoint(); userPoint1.setType(11); @@ -414,7 +414,6 @@ UserPoint userPoint = data.get(0); transferablePoint = Integer.valueOf(userPoint.getExtention()); } - appUser.setTransferablePoint(appUser.getTransferablePoint() + transferablePoint); //构建积分流水明细 if (order.getPoint() > 0) { @@ -422,7 +421,7 @@ userPoint.setType(11); userPoint.setHistoricalPoint(lavePoint); userPoint.setVariablePoint(order.getPoint()); - userPoint.setBalance(appUser.getLavePoint()); + userPoint.setBalance(appUser.getAvailablePoint()); userPoint.setCreateTime(LocalDateTime.now()); userPoint.setAppUserId(order.getAppUserId()); userPoint.setObjectId(order.getId()); @@ -665,7 +664,7 @@ /** * 订单支付 - * + * todo 用户积分流水情况 */ @Override public R orderPayment(OrderPayment orderPayment) { @@ -742,6 +741,7 @@ }else{ //积分支付 orderPoint=goods.getIntegral(); + orderMoney = goods.getSellingPrice(); Integer availablePoint = appUser.getAvailablePoint();//用户可用积分 if(availablePoint.compareTo(orderPoint) < 0){ return R.fail("账户可用积分不足"); @@ -793,30 +793,21 @@ //判断积分是否为零,积分支付 if (0 != order.getPoint()){ //积分支付 - Integer lavePoint = appUser.getLavePoint(); + Integer lavePoint = appUser.getAvailablePoint(); //扣减订单支付积分 - appUser.setLavePoint(appUser.getLavePoint() - orderPoint); - appUser.setAvailablePoint(appUser.getAvailablePoint() - orderPoint); - //可转赠积分 - Integer transferablePoint = appUser.getTransferablePoint(); - Integer tra = 0; - if(transferablePoint > 0){ - tra = transferablePoint - orderPoint; - appUser.setTransferablePoint(tra >= 0 ? tra : 0); - }else{ - appUser.setTransferablePoint(appUser.getTransferablePoint() - orderPoint); - } + appUser.setAvailablePoint(appUser.getAvailablePoint() - orderPoint);//剩余积分 + appUser.setAvailablePoint(appUser.getAvailablePoint() - orderPoint);//可用积分 + //构建积分流水记录 if(orderPoint > 0){ UserPoint userPoint = new UserPoint(); userPoint.setType(11); userPoint.setHistoricalPoint(lavePoint); userPoint.setVariablePoint(orderPoint); - userPoint.setBalance(appUser.getLavePoint()); + userPoint.setBalance(appUser.getAvailablePoint()); userPoint.setCreateTime(LocalDateTime.now()); userPoint.setAppUserId(appUser.getId()); userPoint.setObjectId(order.getId()); - userPoint.setExtention((tra >= 0 ? orderPoint : transferablePoint) + ""); userPointClient.saveUserPoint(userPoint); } @@ -845,14 +836,34 @@ } - //不需要微信支付,直接修改订支付状态 + //积分支付,不需要微信支付,直接修改订支付状态 order.setPayStatus(2); orderMapper.updateById(order); //商品销量增加 goodsClient.editGoodsNum(orderGood.getGoodsId(), 1); - //todo 门店增加冻结资金 + //门店增加冻结资金 即增加金额, 冻结资金=余额-可用资金 + Shop shop = shopClient.getShopById(order.getShopId()).getData(); + BigDecimal historicalBalance=shop.getBalance();//历史余额 + BigDecimal balance=shop.getBalance().add(goods.getSellingPrice());//变动后余额 + shop.setBalance(balance); + shop.setOrderNumber(shop.getOrderNumber()+1); + shopClient.updateShop(shop); + //门店余额流水记录 + ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement(); + shopBalanceStatement.setShopId(shop.getId()); + shopBalanceStatement.setShopName(shop.getName()); + shopBalanceStatement.setShopManagerName(shop.getShopManager()); + shopBalanceStatement.setPhone(shop.getPhone()); + shopBalanceStatement.setType(5);//变更类型,订单收入 + shopBalanceStatement.setHistoricalBalance(historicalBalance); + shopBalanceStatement.setVariableAmount(goods.getSellingPrice()); + shopBalanceStatement.setCreateTime(LocalDateTime.now()); + shopBalanceStatement.setBalance(balance); + shopBalanceStatement.setCreateUserId(appUser.getId()); + shopBalanceStatement.setObjectId(order.getId()); + shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatement); return R.ok(order.getId().toString()); } @@ -881,20 +892,39 @@ order.setSerialNumber(r7TrxNo); orderMapper.updateById(order); - //商店余额改变,增加冻结余额 - Shop shop = shopClient.getShopById(order.getShopId()).getData(); - - - - //商品销量增加 OrderGood orderGood = orderGoodService.getOne(new LambdaQueryWrapper<OrderGood>().eq(OrderGood::getOrderId, order.getId())); + //商品销量增加 goodsClient.editGoodsNum(orderGood.getGoodsId(), 1); + + //门店增加冻结资金 即增加金额, 冻结资金=余额-可用资金 + Shop shop = shopClient.getShopById(order.getShopId()).getData(); + BigDecimal historicalBalance=shop.getBalance();//历史余额 + BigDecimal balance=shop.getBalance().add(order.getTotalAmount());//变动后余额 + shop.setBalance(balance); + shop.setOrderNumber(shop.getOrderNumber()+1); + shopClient.updateShop(shop); + + //门店金额变动记录 + ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement(); + shopBalanceStatement.setShopId(shop.getId()); + shopBalanceStatement.setShopName(shop.getName()); + shopBalanceStatement.setShopManagerName(shop.getShopManager()); + shopBalanceStatement.setPhone(shop.getPhone()); + shopBalanceStatement.setType(5);//变更类型,订单收入 + shopBalanceStatement.setHistoricalBalance(historicalBalance); + shopBalanceStatement.setVariableAmount(order.getTotalAmount()); + shopBalanceStatement.setCreateTime(LocalDateTime.now()); + shopBalanceStatement.setBalance(balance); + shopBalanceStatement.setCreateUserId(appUser.getId()); + shopBalanceStatement.setObjectId(order.getId()); + shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatement); return R.ok(); } /** * 定时任务关闭订单 + * todo 关闭订单前,检查是否先支付过积分抵扣了,是的话要返回订单已抵扣的积分,以及用户积分流水,门店余额流水的删除 */ @Override public void closeOrder() { -- Gitblit v1.7.1