| | |
| | | private RedisTemplate redisTemplate; |
| | | |
| | | @Resource |
| | | private ShopBalanceStatment shopBalanceStatment; |
| | | private ShopBalanceStatementClient shopBalanceStatementClient; |
| | | |
| | | @Resource |
| | | private SystemConfigClient systemConfigClient; |
| | |
| | | } |
| | | |
| | | 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); |
| | |
| | | UserPoint userPoint = data.get(0); |
| | | transferablePoint = Integer.valueOf(userPoint.getExtention()); |
| | | } |
| | | appUser.setTransferablePoint(appUser.getTransferablePoint() + transferablePoint); |
| | | |
| | | //构建积分流水明细 |
| | | if (order.getPoint() > 0) { |
| | |
| | | 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()); |
| | |
| | | |
| | | /** |
| | | * 订单支付 |
| | | * |
| | | * todo 用户积分流水情况 |
| | | */ |
| | | @Override |
| | | public R orderPayment(OrderPayment orderPayment) { |
| | |
| | | }else{ |
| | | //积分支付 |
| | | orderPoint=goods.getIntegral(); |
| | | orderMoney = goods.getSellingPrice(); |
| | | Integer availablePoint = appUser.getAvailablePoint();//用户可用积分 |
| | | if(availablePoint.compareTo(orderPoint) < 0){ |
| | | return R.fail("账户可用积分不足"); |
| | |
| | | //判断积分是否为零,积分支付 |
| | | 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); |
| | | } |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | //不需要微信支付,直接修改订支付状态 |
| | | //积分支付,不需要微信支付,直接修改订支付状态 |
| | | 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()); |
| | | } |
| | | |
| | |
| | | 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() { |