From 2377fb61ed655ead8b9b9a12badbdc64bb202a0c Mon Sep 17 00:00:00 2001 From: zengtao01 Date: Wed, 6 Nov 2024 16:55:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B8=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/enums/ErrorCodeConstants.java | 4 ++- .../storeorder/AppStoreOrderController.java | 31 ++++++++++-------- .../StoreGoodsInventoryServiceImpl.java | 3 +- .../service/storeorder/StoreOrderService.java | 4 +++ .../storeorder/StoreOrderServiceImpl.java | 32 +++++++++++++++++-- 5 files changed, 56 insertions(+), 18 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 a14aadab..deb52745 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 @@ -113,7 +113,9 @@ public interface ErrorCodeConstants { ErrorCode STORE_ORDER_NOT_EXISTS = new ErrorCode(1_007_904_005, "商品订单不存在"); - ErrorCode AMOUNT_NOT_ENOUGH = new ErrorCode(1_007_904_005, "金额不足"); + ErrorCode AMOUNT_NOT_ENOUGH = new ErrorCode(1_007_904_008, "金额不足"); + ErrorCode STATUS_ERROR = new ErrorCode(1_007_904_007, "订单已完成或已退款"); + ErrorCode STORE_ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_007_904_006,"商品订单详情不存在"); //========== 用户余额明细 1-004-014-000 ============= diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java index 26480ecb..7ce01e13 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java @@ -1,39 +1,30 @@ package cn.iocoder.yudao.module.member.controller.app.storeorder; 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.util.object.BeanUtils; -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; -import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderRespVO; -import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderSaveReqVO; -import cn.iocoder.yudao.module.member.controller.admin.storeorderdetail.vo.StoreOrderDetailRespVO; -import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreOrderDto; import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.AppStoreOrderDetailVo; import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.CardDto; import cn.iocoder.yudao.module.member.dal.dataobject.storeorder.StoreOrderDO; -import cn.iocoder.yudao.module.member.dal.dataobject.storeorderdetail.StoreOrderDetailDO; import cn.iocoder.yudao.module.member.service.storeorder.StoreOrderService; import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; import cn.iocoder.yudao.module.system.api.carteen.CarteenApi; -import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi; 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 org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; 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 @@ -68,4 +59,16 @@ public class AppStoreOrderController { return success(storeOrderService.appCreate(dto)); } + @GetMapping("/code") + @Operation(summary = "二维码") + public CommonResult code(Integer orderId) { + return success(storeOrderService.code(orderId)); + } + + @GetMapping("/complete") + @Operation(summary = "核销") + public CommonResult complete(Integer orderId) { + return success(storeOrderService.complete(orderId)); + } + } \ 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/storegoodsinventory/StoreGoodsInventoryServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryServiceImpl.java index aa9f4373..617f46e4 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryServiceImpl.java @@ -12,6 +12,7 @@ import cn.iocoder.yudao.module.member.dal.mysql.storegoodsinventory.StoreGoodsIn import cn.iocoder.yudao.module.member.enums.InventoryTypeEnum; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; @@ -35,7 +36,7 @@ public class StoreGoodsInventoryServiceImpl implements StoreGoodsInventoryServic private StoreGoodsInventoryMapper storeGoodsInventoryMapper; @Override - + @Transactional(rollbackFor = Exception.class) public synchronized Integer createStoreGoodsInventory(@Valid AddReqVO createReqVO) { Integer id = null; List list = createReqVO.getList(); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java index 8fa441c1..123f7439 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java @@ -79,4 +79,8 @@ public interface StoreOrderService { Boolean appCreate(CardDto dto); String customize(StoreOrderDto dto); + + String code(Integer orderId); + + Boolean complete(Integer orderId); } \ 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/storeorder/StoreOrderServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java index 7bdb4960..8b845be4 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 @@ -34,6 +34,7 @@ import cn.iocoder.yudao.module.member.service.storebusiness.StoreBusinessService import cn.iocoder.yudao.module.member.service.storegoodsinventory.StoreGoodsInventoryService; import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; import cn.iocoder.yudao.module.member.service.user.MemberUserService; +import cn.iocoder.yudao.module.member.util.QRCodeWithJWTUtil; import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -51,8 +52,7 @@ import java.util.ArrayList; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.AMOUNT_NOT_ENOUGH; -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_ORDER_NOT_EXISTS; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*; /** * 商品订单 Service 实现类 @@ -389,6 +389,34 @@ public class StoreOrderServiceImpl implements StoreOrderService { return null; } + @Override + public String code(Integer orderId) { + return QRCodeWithJWTUtil.generateQRCode(orderId.toString(), 350, 350, null);// 生 + } + + @Override + public Boolean complete(Integer orderId) { + StoreOrderDO storeOrderDO = storeOrderMapper.selectById(orderId); + if(ObjectUtil.isEmpty(storeOrderDO)){ + throw exception(STORE_ORDER_NOT_EXISTS); + } + if(storeOrderDO.getStatus().equals(StoreOrderStatusEnum.COMPLETE.getCode()) + || storeOrderDO.getStatus().equals(StoreOrderStatusEnum.REFUND.getCode())){ + throw exception(STATUS_ERROR); + } + storeOrderDO.setStatus(StoreOrderStatusEnum.COMPLETE.getCode()); + storeOrderMapper.updateById(storeOrderDO); + //营业数据 + StatisticsVo statisticsVo = new StatisticsVo(); + statisticsVo.setCarteenId(storeOrderDO.getCarteenId()); + statisticsVo.setTotalMoney(BigDecimal.valueOf(storeOrderDO.getTotalPrice())); + statisticsVo.setOrderSum(1); + statisticsVo.setTime(storeOrderDO.getCreateTime()); + statisticsVo.setOrderId(storeOrderDO.getOrderId().longValue()); + storeBusinessService.updateStatistics(statisticsVo); + return true; + } + public void test() { //计算金额 //if (total.compareTo(wxAmount) <= 0) {