From 37345028ce0990b390e9e8eb71b5d1e8878baa1c Mon Sep 17 00:00:00 2001 From: zt Date: Thu, 19 Dec 2024 16:33:40 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A6=E6=88=B7=E9=97=A8=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/card/vo/AppCardPageReqVO.java | 3 ++ .../AppDiningPlatesController.java | 18 +++++----- .../member/dal/mysql/card/CardMapper.java | 1 + .../service/amount/DeductionServiceImpl.java | 5 ++- .../diningplates/DiningPlatesServiceImpl.java | 36 +++++++++++++------ .../service/order/OrderServiceImpl.java | 20 ++--------- .../src/main/resources/application-local.yaml | 2 +- 7 files changed, 46 insertions(+), 39 deletions(-) diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/vo/AppCardPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/vo/AppCardPageReqVO.java index 4568974b..ba918e1a 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/vo/AppCardPageReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/vo/AppCardPageReqVO.java @@ -37,4 +37,7 @@ public class AppCardPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "消费类型") + private String carteenId; + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/diningplates/AppDiningPlatesController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/diningplates/AppDiningPlatesController.java index c7df736a..25663608 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/diningplates/AppDiningPlatesController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/diningplates/AppDiningPlatesController.java @@ -64,23 +64,23 @@ public class AppDiningPlatesController { @GetMapping("/checkBind") @Operation(summary = "验证餐盘绑定") public CommonResult checkBind(String diningPlatesNum, Long storeId) { - storeId = getCarteen(storeId); - return success(diningPlatesService.appCheckBind(diningPlatesNum,storeId)); + Long newStoreId = getCarteen(storeId); + return success(diningPlatesService.appCheckBind(diningPlatesNum,newStoreId)); } @GetMapping("/unbind") @Operation(summary = "餐盘解绑") public CommonResult unbind(String diningPlatesNum,Long storeId) { - storeId = getCarteen(storeId); - diningPlatesService.unbind(diningPlatesNum,storeId); + Long newStoreId = getCarteen(storeId); + diningPlatesService.unbind(diningPlatesNum,newStoreId); return success(diningPlatesNum); } @GetMapping("/getUserAndDish") @Operation(summary = "根据餐盘号获取当前余额") public CommonResult getMoney(String cId, Long dishesId,Long storeId) { - storeId = getCarteen(storeId); - return success(diningPlatesService.getMoney(cId,dishesId,storeId)); + Long newStoreId = getCarteen(storeId); + return success(diningPlatesService.getMoney(cId,dishesId,newStoreId)); } @GetMapping("/getBind") @@ -92,8 +92,8 @@ public class AppDiningPlatesController { @GetMapping("/checkBindAndUnBind") @Operation(summary = "餐盘解绑") public CommonResult checkBindAndUnBind(String diningPlatesNum,Long storeId) { - storeId = getCarteen(storeId); - Map map = diningPlatesService.checkBindAndUnBind(diningPlatesNum, storeId); + Long newStoreId = getCarteen(storeId); + Map map = diningPlatesService.checkBindAndUnBind(diningPlatesNum, newStoreId); CommonResult result = new CommonResult<>(); result.setCode(200); result.setData(map.get("data")); @@ -109,7 +109,7 @@ public class AppDiningPlatesController { public Long getCarteen(Long storeId) { - if (storeId != null){ + if (storeId != null && storeId != 0){ return storeId; } try { diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/card/CardMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/card/CardMapper.java index e119283d..2593ecee 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/card/CardMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/card/CardMapper.java @@ -56,6 +56,7 @@ public interface CardMapper extends BaseMapperX { .eqIfPresent(CardDO::getFlag, reqVO.getFlag()) .eqIfPresent(CardDO::getChangeMoney, reqVO.getChangeMoney()) .betweenIfPresent(CardDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(CardDO::getCarteenId,reqVO.getCarteenId()) .orderByDesc(CardDO::getId)); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/DeductionServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/DeductionServiceImpl.java index 66f5d75f..c152f00f 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/DeductionServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/DeductionServiceImpl.java @@ -98,7 +98,10 @@ public class DeductionServiceImpl implements DeductionService { //当前金额 BigDecimal wxAmount = user.getWxAmount(); BigDecimal giftAmount = user.getGiftAmount(); - BigDecimal cashAmount = moneyDO.getCashAmount(); + BigDecimal cashAmount = BigDecimal.ZERO; + if(ObjectUtil.isNotEmpty(moneyDO)){ + cashAmount = moneyDO.getCashAmount(); + } BigDecimal money = wxAmount.add(giftAmount).add(cashAmount); // user.setMoney(money.subtract(total)); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesServiceImpl.java index abb2ed5f..de64af71 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesServiceImpl.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.member.service.diningplates; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; @@ -208,11 +209,10 @@ public class DiningPlatesServiceImpl implements DiningPlatesService { .last(MemberConstants.LIMIT_ONE)); checkMemberUser(memberUserDO, false); //订单验证 - checkOrder(memberUserDO.getId()); + checkOrder(memberUserDO.getId(),diningPlatesDO.getStoreId()); //余额验证 - BigDecimal money = memberUserDO.getMoney(); - checkMoney(money); + BigDecimal money = checkMoney(memberUserDO, storeId); diningPlatesDO.setUserId(memberUserDO.getId()); diningPlatesDO.setStatus(DiningPlatesDO.USE); @@ -260,10 +260,9 @@ public class DiningPlatesServiceImpl implements DiningPlatesService { MemberUserDO memberUserDO = memberUserMapper.selectOne(wrapper); checkMemberUser(memberUserDO, true); //订单验证 - checkOrder(memberUserDO.getId()); + checkOrder(memberUserDO.getId(),diningPlatesDO.getStoreId()); //余额验证 - BigDecimal money = memberUserDO.getMoney(); - checkMoney(money); + BigDecimal money = checkMoney(memberUserDO,storeId); diningPlatesDO.setUserId(memberUserDO.getId()); diningPlatesDO.setStatus(DiningPlatesDO.USE); @@ -363,19 +362,32 @@ public class DiningPlatesServiceImpl implements DiningPlatesService { //} } - public void checkMoney(BigDecimal money) { + public BigDecimal checkMoney(MemberUserDO memberUserDO,Long storeId) { + BigDecimal cashAmount = BigDecimal.ZERO; + MoneyDO moneyDO = moneyService.getMoney(memberUserDO.getId(), storeId); + + if (ObjectUtil.isNotEmpty(moneyDO)) { + cashAmount = moneyDO.getCashAmount(); + }else { + MoneyDO add = new MoneyDO(); + add.setUserId(memberUserDO.getId()); + add.setCarteenId(storeId); + moneyService.insertOne(add); + } + BigDecimal money = memberUserDO.getWxAmount().add(cashAmount); if (money.compareTo(MemberConstants.ALARM_BALANCE) < 0) { throw exception(INSUFFICIENT_BALANCE); } + return money; } - public void checkOrder(Long userId) { + public void checkOrder(Long userId,Long carteenId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(DishOrderDO::getUserId,userId); wrapper.eq(DishOrderDO::getOrderStatus,DishOrderDO.TOCOMPLETE); - + wrapper.eq(DishOrderDO::getStoreId,carteenId); List dishOrderDOS = dishOrderMapper.selectList(wrapper); ErrorCode code = new ErrorCode(1_004_099_008, "存在未支付完的订单"); if(CollectionUtil.isNotEmpty(dishOrderDOS)){ @@ -481,12 +493,16 @@ public class DiningPlatesServiceImpl implements DiningPlatesService { DishesRespDto dish = dishesApi.getDish(dishId); MoneyDO moneyDO = moneyService.getMoney(memberUserDO.getId(), storeId); + BigDecimal cashAmount = BigDecimal.ZERO; + if(ObjectUtil.isNotEmpty(moneyDO)){ + cashAmount = moneyDO.getCashAmount(); + } AppUserInfo appUserInfo = new AppUserInfo(); appUserInfo.setNickname(StrUtil.isNotBlank(memberUserDO.getName())?memberUserDO.getName():memberUserDO.getNickname()) .setDishesName(dish.getDishesName()) .setDishesBasePrice(dish.getDishesBasePrice()).setDishesSumPrice(dish.getDishesSumPrice()) - .setMoney(memberUserDO.getWxAmount().add(moneyDO.getCashAmount())) + .setMoney(memberUserDO.getWxAmount().add(cashAmount)) .setOrderMoney(new BigDecimal(stringRedisTemplate.opsForValue().get(diningPlatesNum+"-"+storeId))) .setReception(memberUserDO.getReception()).setLimitAmount(memberUserDO.getLimitAmount()); return appUserInfo; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java index 0efe84ea..782996e8 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java @@ -188,29 +188,13 @@ public class OrderServiceImpl implements OrderService { List list = appOrderRespVOPageResult.getList(); for (AppOrderRespVO dishOrderDO : list) { List appOrderDetailRespVOS = orderDetailService.selectListByOrderId(dishOrderDO.getId()); -// if (CollectionUtil.isNotEmpty(appOrderDetailRespVOS)) { -// List dishIds = appOrderDetailRespVOS.stream().map(AppOrderDetailRespVO::getDishesId).collect(Collectors.toList()); -// -// List dishInfo = dishesApi.getDishInfo(dishIds); -// Map dishMap = dishInfo.stream().collect(Collectors.toMap(DishesRespDto::getId, DishesRespDto -> DishesRespDto)); -// -// appOrderDetailRespVOS.forEach(respVo -> { -// DishesRespDto dishesRespDto = dishMap.get(respVo.getDishesId()); -// if (ObjectUtil.isNotEmpty(dishesRespDto)) { -// respVo.setDishesBasePrice(dishesRespDto.getDishesBasePrice()) -// .setDishesSumPrice(ObjectUtil.isNotEmpty(respVo.getUnitPrice())?respVo.getUnitPrice():dishesRespDto.getDishesSumPrice()) -// .setDishesNumber(dishesRespDto.getDishesNumber()); -// } -// -// }); -// -// } + for (AppOrderDetailRespVO respVo : appOrderDetailRespVOS) { respVo.setDishesSumPrice(respVo.getUnitPrice()); } dishOrderDO.setRefundStatus(refundService.getRefundStatus(dishOrderDO.getId())); dishOrderDO.setDetailList(appOrderDetailRespVOS); - dishOrderDO.setMoney(cardMapper.getMoneyByUsr(dishOrderDO.getUserId())); +// dishOrderDO.setMoney(cardMapper.getMoneyByUsr(dishOrderDO.getUserId())); } return appOrderRespVOPageResult; diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml index 86867069..e46dddcb 100644 --- a/yudao-server/src/main/resources/application-local.yaml +++ b/yudao-server/src/main/resources/application-local.yaml @@ -8,7 +8,7 @@ spring: autoconfigure: exclude: - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源 - - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置 +# - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置 - de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration # 禁用 Spring Boot Admin 的 Server 的自动配置 - de.codecentric.boot.admin.server.ui.config.AdminServerUiAutoConfiguration # 禁用 Spring Boot Admin 的 Server UI 的自动配置 - de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration # 禁用 Spring Boot Admin 的 Client 的自动配置