From 382d812a6342e63d4e44ed32c328715c066f209b Mon Sep 17 00:00:00 2001 From: zt Date: Tue, 8 Jul 2025 15:53:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/enums/ErrorCodeConstants.java | 2 + .../StoreGoodsTypeController.java | 42 +++++++++---------- .../app/store/AppStoreController.java | 4 +- .../service/amount/DeductionServiceImpl.java | 18 +++++--- .../service/order/OrderServiceImpl.java | 4 ++ .../storegoodstype/StoreGoodsTypeService.java | 2 + .../StoreGoodsTypeServiceImpl.java | 5 +++ .../storeorder/StoreOrderServiceImpl.java | 4 +- 8 files changed, 51 insertions(+), 30 deletions(-) diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java index 619903ff..7442a0a8 100644 --- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java @@ -61,6 +61,7 @@ public interface ErrorCodeConstants { ErrorCode CARD_NOT_EXISTS = new ErrorCode(1_004_013_000, "余额明细不存在"); ErrorCode ORDER_NOT_EXISTS = new ErrorCode(1_004_013_001, "订单不存在"); ErrorCode ORDER_STATUS_NOT_ALLOW = new ErrorCode(1_004_013_001, "未完成订单或异常订单不支持减免"); + ErrorCode ORDER_MONEY_NOT_ENOUGH = new ErrorCode(1_004_013_001, "减免金额不能大于订单金额"); ErrorCode ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_004_013_002, "订单明细不存在"); ErrorCode RECHARGE_AMOUNT_NOT_EXISTS = new ErrorCode(1_004_013_003, "订单明细不存在"); ErrorCode RECHARGE_AMOUNT_ALREADY_EXISTS = new ErrorCode(1_004_013_004, "该金额已存在"); @@ -217,5 +218,6 @@ public interface ErrorCodeConstants { ErrorCode ACTIVITY_MENU_NOT_EXISTS = new ErrorCode(1_005_000_25, "活动套餐不存在"); + } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoodstype/StoreGoodsTypeController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoodstype/StoreGoodsTypeController.java index 1e6a2fce..fb661071 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoodstype/StoreGoodsTypeController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoodstype/StoreGoodsTypeController.java @@ -1,33 +1,31 @@ package cn.iocoder.yudao.module.member.controller.admin.storegoodstype; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; -import java.io.IOException; - +import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; - import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; -import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; - -import cn.iocoder.yudao.module.member.controller.admin.storegoodstype.vo.*; +import cn.iocoder.yudao.module.member.controller.admin.storegoodstype.vo.StoreGoodsTypePageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storegoodstype.vo.StoreGoodsTypeRespVO; +import cn.iocoder.yudao.module.member.controller.admin.storegoodstype.vo.StoreGoodsTypeSaveReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.storegoodstype.StoreGoodsTypeDO; import cn.iocoder.yudao.module.member.service.storegoodstype.StoreGoodsTypeService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 商品类别") @RestController @@ -95,7 +93,7 @@ public class StoreGoodsTypeController { @GetMapping("/all") @Operation(summary = "获得商品类别分页") public CommonResult> getAll() { - List all = storeGoodsTypeService.getAll(); + List all = storeGoodsTypeService.getAllDevice(); return success(BeanUtils.toBean(all, StoreGoodsTypeRespVO.class)); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/AppStoreController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/AppStoreController.java index efa4479c..3f0d55be 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/AppStoreController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/AppStoreController.java @@ -74,7 +74,7 @@ public class AppStoreController { String equipment = request.getHeader("Authorization"); Long storeId = cashregisterinfoApi.getStoreId(equipment); List goodsDOS = storeGoodsService.getByCarteenId(storeId); - List goodsTypeDOS = goodsTypeService.getAll(); + List goodsTypeDOS = goodsTypeService.getAllDevice(); List goodData = BeanUtils.toBean(goodsDOS, StoreGoodsListVo.class); List categoryData = BeanUtils.toBean(goodsTypeDOS, StoreGoodsTypeListVo.class); GoodsResult goodsResult = new GoodsResult(); @@ -118,7 +118,7 @@ public class AppStoreController { return JsonUtils.toJsonString(goodsResult); } List goodsDOS = storeGoodsService.getAll(goodsIds); - List goodsTypeDOS = goodsTypeService.getAll(); + List goodsTypeDOS = goodsTypeService.getAllDevice(); List goodData = BeanUtils.toBean(goodsDOS, StoreGoodsListVo.class); //库存处理 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 dd4e4595..c20e27c3 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 @@ -693,13 +693,21 @@ public class DeductionServiceImpl implements DeductionService { synchronized (getUserLock(userId)) { MemberUserDO user = userService.getUser(userId); - user.setCashAmount(user.getCashAmount().add(cashAmount)); - user.setWxAmount(user.getWxAmount().add(wxAmount)); + //考虑欠款的情况下 退还都直接退到现金,不退回微信 + BigDecimal oldAmount = user.getMoney(); user.setMoney(user.getMoney().add(money)); - userService.updateById(user); - - wxNewAmount = user.getWxAmount(); newAmount = user.getMoney(); + + if(oldAmount.compareTo(BigDecimal.ZERO) < 0){ + if(newAmount.compareTo(BigDecimal.ZERO) > 0){ + user.setCashAmount(user.getCashAmount().add(newAmount)); + } + }else { + user.setCashAmount(user.getCashAmount().add(cashAmount)); + } + + userService.updateById(user); + wxNewAmount = user.getWxAmount(); cashNewAmount = user.getCashAmount(); name = user.getNickname(); } 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 e3221aab..b980897e 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 @@ -456,6 +456,10 @@ public class OrderServiceImpl implements OrderService { @Transactional(rollbackFor = Exception.class) public void reduction(Long orderId, BigDecimal money) { DishOrderDO dishOrderDO = dishOrderMapper.selectById(orderId); + if(dishOrderDO.getTotalMoney().compareTo(money) < 0){ + throw exception(ORDER_MONEY_NOT_ENOUGH); + } + dishOrderDO.setReductionState("1"); if (dishOrderDO.getOrderStatus().equals("1")) { dishOrderDO.setReductionAmount(dishOrderDO.getReductionAmount().add(money)); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodstype/StoreGoodsTypeService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodstype/StoreGoodsTypeService.java index cffa83ad..8000bc4e 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodstype/StoreGoodsTypeService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodstype/StoreGoodsTypeService.java @@ -55,5 +55,7 @@ public interface StoreGoodsTypeService { List getAll(); + List getAllDevice(); + StoreGoodsTypeDO getByName(String name); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodstype/StoreGoodsTypeServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodstype/StoreGoodsTypeServiceImpl.java index 940d490a..da745325 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodstype/StoreGoodsTypeServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodstype/StoreGoodsTypeServiceImpl.java @@ -78,6 +78,11 @@ public class StoreGoodsTypeServiceImpl implements StoreGoodsTypeService { .eq(StoreGoodsTypeDO::getAppShow, "1")); } + @Override + public List getAllDevice() { + return storeGoodsTypeMapper.selectList(); + } + @Override public StoreGoodsTypeDO getByName(String name) { List goodsTypeDOS = storeGoodsTypeMapper.selectList(new LambdaQueryWrapper().eq(StoreGoodsTypeDO::getCategoryName, name)); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java index 62a4e3f7..641740a4 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java @@ -345,9 +345,11 @@ public class StoreOrderServiceImpl implements StoreOrderService { @Override public void reduction(Long orderId, BigDecimal money) { StoreOrderDO storeOrderDO = storeOrderMapper.selectById(orderId); - Double totalPrice = storeOrderDO.getTotalPrice(); BigDecimal total = BigDecimal.valueOf(totalPrice).setScale(2, RoundingMode.HALF_UP); + if(total.compareTo(money) < 0){ + throw exception(ORDER_MONEY_NOT_ENOUGH); + } Double reductionPrice = storeOrderDO.getReductionPrice(); BigDecimal reduction = BigDecimal.valueOf(reductionPrice).setScale(2, RoundingMode.HALF_UP); storeOrderDO.setReductionPrice(reduction.add(money).doubleValue());