From f75c326d10e100e06c1cc2be98d55d747fd7b450 Mon Sep 17 00:00:00 2001 From: admin <1752476835@qq.com> Date: Fri, 7 Jun 2024 17:17:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BD=99=E9=A2=9D=E5=85=85?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PlayBalanceDetailsInfoController.java | 12 ----- .../entity/PlayBalanceDetailsInfoEntity.java | 17 ++++++- .../IPlayBalanceDetailsInfoService.java | 9 ++-- .../PlayBalanceDetailsInfoServiceImpl.java | 12 ++++- .../impl/PlayClerkRankingInfoServiceImpl.java | 3 ++ .../impl/PlayClerkUserInfoServiceImpl.java | 2 +- .../entity/PlayCustomUserInfoEntity.java | 10 ++++ .../service/IPlayCustomUserInfoService.java | 24 +++++++++- .../impl/PlayCustomUserInfoServiceImpl.java | 47 +++++++++++++++++-- .../controller/WxCustomController.java | 8 ++-- 10 files changed, 115 insertions(+), 29 deletions(-) diff --git a/play-admin/src/main/java/com/starry/admin/modules/balance/controller/PlayBalanceDetailsInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/balance/controller/PlayBalanceDetailsInfoController.java index c0c0d1d..e96440a 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/balance/controller/PlayBalanceDetailsInfoController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/balance/controller/PlayBalanceDetailsInfoController.java @@ -40,18 +40,6 @@ public class PlayBalanceDetailsInfoController { return R.ok(playBalanceDetailsInfoService.selectPlayBalanceDetailsInfoById(id)); } - /** - * 新增余额明细 - */ - @Log(title = "余额明细", businessType = BusinessType.INSERT) - @PostMapping("/create") - public R create(@RequestBody PlayBalanceDetailsInfoEntity playBalanceDetailsInfo) { - boolean success = playBalanceDetailsInfoService.create(playBalanceDetailsInfo); - if (success) { - return R.ok(); - } - return R.error("添加失败"); - } /** * 修改余额明细 diff --git a/play-admin/src/main/java/com/starry/admin/modules/balance/module/entity/PlayBalanceDetailsInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/balance/module/entity/PlayBalanceDetailsInfoEntity.java index 8d5c8ae..b9b69bb 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/balance/module/entity/PlayBalanceDetailsInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/balance/module/entity/PlayBalanceDetailsInfoEntity.java @@ -1,11 +1,14 @@ package com.starry.admin.modules.balance.module.entity; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.starry.common.domain.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.Date; /** @@ -64,13 +67,25 @@ public class PlayBalanceDetailsInfoEntity extends BaseEntity { + + /** * 查询余额明细 * @@ -50,11 +52,12 @@ public interface IPlayBalanceDetailsInfoService extends IService implements IPlayCustomUserInfoService { @Resource @@ -43,11 +46,11 @@ public class PlayCustomUserInfoServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -55,6 +58,38 @@ public class PlayCustomUserInfoServiceImpl extends ServiceImpl lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.selectAll(PlayCustomLevelInfoEntity.class); + lambdaQueryWrapper.leftJoin(PlayCustomLevelInfoEntity.class, PlayCustomLevelInfoEntity::getId, PlayCustomUserInfoEntity::getLevelId); + lambdaQueryWrapper.eq(PlayCustomUserInfoEntity::getId, customId); + PlayCustomLevelInfoEntity entity = this.baseMapper.selectJoinOne(PlayCustomLevelInfoEntity.class, lambdaQueryWrapper); + if (entity == null) { + log.error("未查询当前顾客的充值优惠金额,支付金额等于充值金额,rechargeAmount={},customId={}", rechargeAmount, customId); + return rechargeAmount; + } + try { + BigDecimal paymentAmount = BigDecimal.valueOf(entity.getDiscount()).divide(new BigDecimal(100), 4, RoundingMode.HALF_UP).add(rechargeAmount); + log.info("等级为{}的顾客{},充值{}元,实际应该支付{}元", entity.getName(), customId, rechargeAmount, paymentAmount); + return paymentAmount; + } catch (Exception e) { + log.error("计算顾客充值优惠金额发生异常,支付金额等于充值金额,rechargeAmount={},customId={}", rechargeAmount, customId); + return rechargeAmount; + } + } + + @Override + public void customAccountBalanceRecharge(BigDecimal rechargeAmount, String customId, String orderId) { + PlayCustomUserInfoEntity userInfo = this.selectById(customId); + //查询充值赠送金额(暂是设置为0) + BigDecimal giftAmount = BigDecimal.ZERO; + //修改用户账户余额 + this.updateAccountBalanceById(customId, userInfo.getAccountBalance(), userInfo.getAccountBalance().add(rechargeAmount).add(giftAmount), "0", "重置", rechargeAmount.add(giftAmount), giftAmount, orderId); + } + /** * 查询顾客 * @@ -236,11 +271,15 @@ public class PlayCustomUserInfoServiceImpl extends ServiceImpl 0 ? "`" : "0"); + this.baseMapper.updateById(entity); //记录余额变更记录 - playBalanceDetailsInfoService.create("1", userId, balanceBeforeOperation, balanceAfterOperation, operationType, operationAction, balanceMoney, orderId); + playBalanceDetailsInfoService.insertBalanceDetailsInfo("1", userId, balanceBeforeOperation, balanceAfterOperation, operationType, operationAction, balanceMoney, giftAmount, orderId); } /** diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCustomController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCustomController.java index 378843a..b4a76cf 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCustomController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCustomController.java @@ -198,7 +198,7 @@ public class WxCustomController { // // playOrderInfoService.createRewardOrder(orderId, new BigDecimal(vo.getMoney()), new BigDecimal(vo.getMoney()), userId, clerkUserInfo.getId(), vo.getRemark(), vo.getWeiChatCode()); // 顾客减少余额 - customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(new BigDecimal(vo.getMoney())), "1", "打赏", new BigDecimal(vo.getMoney()), orderId); + customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(new BigDecimal(vo.getMoney())), "1", "打赏", new BigDecimal(vo.getMoney()), BigDecimal.ZERO, orderId); // 陪聊增加余额 // clerkUserInfoService.updateAccountBalanceById(clerkUserInfo.getId(), clerkUserInfo.getAccountBalance(), clerkUserInfo.getAccountBalance().add(new BigDecimal(vo.getMoney())), "2", "打赏", new BigDecimal(vo.getMoney()), orderId); return R.ok("成功"); @@ -225,7 +225,7 @@ public class WxCustomController { // playOrderInfoService.createGiftOrder(orderId, vo.getGiftId(), giftInfo.getPrice(), String.valueOf(vo.getGiftQuantity()), money, money, userId, clerkUserInfo.getId(), vo.getRemark(), vo.getWeiChatCode()); // 顾客减少余额 - customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "1", "赠送礼物", money, orderId); + customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "1", "赠送礼物", money, BigDecimal.ZERO, orderId); // 陪聊增加余额 // clerkUserInfoService.updateAccountBalanceById(clerkUserInfo.getId(), clerkUserInfo.getAccountBalance(), clerkUserInfo.getAccountBalance().add(money), "2", "赠送礼物", money, orderId); // 修改顾客和礼物消息 @@ -284,7 +284,7 @@ public class WxCustomController { playOrderInfoService.createOrderInfo(orderId, playOrderInfoService.getOrderNo(), "0", "2", "0", "", "1", commodityInfo.getCommodityId(), "1", commodityInfo.getCommodityPrice(), commodityInfo.getServiceDuration(), commodityInfo.getCommodityName(), String.valueOf(vo.getCommodityQuantity()), money, money, BigDecimal.ZERO, customId, clerkUserInfo.getId(), vo.getWeiChatCode(), vo.getRemark()); // playOrderInfoService.createOrdinaryOrder(orderId, commodityInfo.getCommodityId(), commodityInfo.getCommodityPrice(), String.valueOf(vo.getCommodityQuantity()), commodityInfo.getCommodityName(), commodityInfo.getServiceDuration(), money, money, customId, clerkUserInfo.getId(), vo.getRemark(), vo.getWeiChatCode()); // 顾客减少余额 - customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "1", "下单-指定单", money, orderId); + customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "1", "下单-指定单", money, BigDecimal.ZERO, orderId); // 陪聊增加余额 // clerkUserInfoService.updateAccountBalanceById(clerkUserInfo.getId(), clerkUserInfo.getAccountBalance(), clerkUserInfo.getAccountBalance().add(money), "2", "下单-指定单", money, orderId); return R.ok("成功"); @@ -324,7 +324,7 @@ public class WxCustomController { // playOrderInfoService.createRandomOrder(orderId, customUserInfo.getId(), commodityInfo.getCommodityPrice(), String.valueOf(vo.getCommodityQuantity()), commodityInfo.getServiceDuration(), commodityInfo.getCommodityName(), money, money, customId, vo.getRemark(), vo.getWeiChatCode()); // 顾客减少余额 - customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "1", "下单-随机单", money, orderId); + customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "1", "下单-随机单", money, BigDecimal.ZERO, orderId); // 下单成功后,先根据用户条件进行随机分配 return R.ok("下单成功"); }