From e14a6debcb17348164f703fcb2a7b9b1c3608352 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期五, 02 二月 2024 10:19:32 +0800 Subject: [PATCH] 提交版本 --- meiya-rest/src/main/java/com/sinata/rest/modular/member/shop/ShopController.java | 109 +++++++++++++++++------------------------------------- 1 files changed, 34 insertions(+), 75 deletions(-) diff --git a/meiya-rest/src/main/java/com/sinata/rest/modular/member/shop/ShopController.java b/meiya-rest/src/main/java/com/sinata/rest/modular/member/shop/ShopController.java index 0dd09c7..1793aeb 100644 --- a/meiya-rest/src/main/java/com/sinata/rest/modular/member/shop/ShopController.java +++ b/meiya-rest/src/main/java/com/sinata/rest/modular/member/shop/ShopController.java @@ -1,24 +1,17 @@ package com.sinata.rest.modular.member.shop; -import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.sinata.common.enums.EnumMemberGrade; -import com.sinata.common.enums.mall.EnumMallOrderState; import com.sinata.rest.common.ApiUtils; import com.sinata.rest.modular.auth.util.ThreadPoolUtil; import com.sinata.rest.modular.mall.controller.vo.VoMallOrder; import com.sinata.rest.modular.mall.controller.vo.VoMallOrderDetail; import com.sinata.rest.modular.mall.dao.NoticeMapper; -import com.sinata.rest.modular.mall.model.MallOrder; -import com.sinata.rest.modular.mall.model.MallOrderDetail; import com.sinata.rest.modular.mall.model.MallOrderDetailUse; import com.sinata.rest.modular.mall.service.IMallCommissionSettlementService; import com.sinata.rest.modular.mall.service.IMallOrderDetailService; import com.sinata.rest.modular.mall.service.IMallOrderService; -import com.sinata.rest.modular.member.model.MemUser; -import com.sinata.rest.modular.member.model.MemUserRelation; +import com.sinata.rest.modular.member.controller.common.body.BodyMallOrderDetailUse; import com.sinata.rest.modular.member.service.IMallOrderDetailUseService; import com.sinata.rest.modular.member.service.IMemMerchantService; import com.sinata.rest.modular.member.service.IMemUserRelationService; @@ -30,12 +23,11 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.*; +import java.util.List; @Slf4j @RestController @@ -90,7 +82,7 @@ @GetMapping(value = "/detail") @ApiOperation(value = "获取订单详细", notes = "获取订单详细", response = VoMallOrder.class) @ApiImplicitParams({ - @ApiImplicitParam(name = "orderNo", value = "订单编号", defaultValue = "1", dataType = "String", paramType = "query", required = true), + @ApiImplicitParam(name = "orderNo", value = "订单编号", dataType = "String", paramType = "query", required = true), }) public Object detail(String orderNo) { VoMallOrder order = orderService.getOrderByOrderNo(orderNo); @@ -105,7 +97,7 @@ // @PostMapping(value = "/userTest") // @ApiOperation(value = "订单-核销分佣test") // @ApiImplicitParams({ -// @ApiImplicitParam(name = "orderNo", value = "订单编号", defaultValue = "1", dataType = "String", paramType = "query", required = true), +// @ApiImplicitParam(name = "orderNo", value = "订单编号", dataType = "String", paramType = "query", required = true), // }) // public Object userTest(String orderNo) { // // 核销订单-分佣 @@ -142,73 +134,40 @@ // } @PostMapping(value = "/use") - @ApiOperation(value = "订单核销", notes = "获取订单详细", response = VoMallOrder.class) - public Object use(@RequestBody MallOrderDetailUse useDetail) { - VoMallOrder order = orderService.getOrderByOrderNo(useDetail.getOrderNo()); - if (Objects.isNull(order)) { - throw new IllegalArgumentException("错误的订单信息"); + @ApiOperation(value = "订单核销", notes = "订单核销", response = VoMallOrder.class) + public Object use(@RequestBody MallOrderDetailUse orderDetailUse) { + BodyMallOrderDetailUse body = BeanUtil.toBean(orderDetailUse, BodyMallOrderDetailUse.class); + try { + return orderService.use(body); + } catch (Exception e) { + return ApiUtils.returnNG(null, e.getMessage()); } - if(!order.getMerchantId().equals(ThreadPoolUtil.getUserId())){ - throw new IllegalArgumentException("该订单不是此门店的预约订单"); - } - Long nowTime = System.currentTimeMillis(); - if ((Objects.nonNull(order.getStartTime()) && Objects.nonNull(order.getEndTime()) - && (nowTime.compareTo(order.getEndTime().getTime()) > 0 - || nowTime.compareTo(order.getStartTime().getTime()) < 0))) { - throw new IllegalArgumentException("未到核销时间"); - } - if (!order.getState().equals(EnumMallOrderState.WAIT_CHECK.index) - && !order.getState().equals(EnumMallOrderState.USE.index)) { - throw new IllegalArgumentException("订单状态无法被核销"); - } - LambdaQueryWrapper<MallOrderDetail> queryWrapper2 = new LambdaQueryWrapper<>(); - queryWrapper2.eq(MallOrderDetail::getOrderDetailNo, useDetail.getOrderDetailNo()); - MallOrderDetail orderDetail = orderDetailService.getOne(queryWrapper2); - Integer useNumber = orderDetail.getUseNum() + useDetail.getUseNum(); - if (useNumber > orderDetail.getGoodsNum()) { - throw new IllegalArgumentException("核销信息错误请检查"); - } - //添加核销记录 - MallOrderDetailUse detailUse = new MallOrderDetailUse(); - BeanUtils.copyProperties(orderDetail, detailUse); - detailUse.setId(null); - detailUse.setUseNum(useDetail.getUseNum()); - detailUse.setUseTime(new Date()); - mallOrderDetailUseService.save(detailUse); - //添加核销时间 - MallOrderDetail updateOrder = new MallOrderDetail(); - updateOrder.setUseNum(useNumber); - updateOrder.setUseTime(new Date()); - UpdateWrapper<MallOrderDetail> updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("order_detail_no", orderDetail.getOrderDetailNo()); - orderDetailService.update(updateOrder, updateWrapper); + } - LambdaQueryWrapper<MallOrderDetail> orderWrapper = new LambdaQueryWrapper<>(); - orderWrapper.eq(MallOrderDetail::getOrderNo, useDetail.getOrderNo()); - orderWrapper.last("and use_num <> goods_num"); - List<MallOrderDetail> detailList = orderDetailService.list(orderWrapper); - if (detailList.size() == 0) { - //修改订单状态 - MallOrder mallOrder = new MallOrder(); - mallOrder.setState(EnumMallOrderState.SUCCESS.index); - mallOrder.setOrderNo(orderDetail.getOrderNo()); - orderService.updateById(mallOrder); - - // 核销订单-分佣 - mallCommissionSettlementService.commissionSettlement(mallOrder.getOrderNo()); - } else { - //修改订单状态 - MallOrder mallOrder = new MallOrder(); - mallOrder.setState(EnumMallOrderState.USE.index); - mallOrder.setOrderNo(orderDetail.getOrderNo()); - orderService.updateById(mallOrder); + @PostMapping(value = "/useGroup") + @ApiOperation(value = "套餐订单核销", notes = "套餐订单核销") + public Object useGroup(@RequestBody BodyMallOrderDetailUse body) { + try { + return orderService.use(body); + } catch (Exception e) { + return ApiUtils.returnNG(null, e.getMessage()); } + } - //插入预约通知 - if(Objects.nonNull(order.getMerchantId())){ - noticeMapper.addMerchantNotice(order.getMerchantId(),2,"您有新的核销订单"); + @PostMapping(value = "/useGroupBatch") + @ApiOperation(value = "套餐订单核销(批量)", notes = "套餐订单核销(批量)") + public Object useGroupBatch(@RequestBody List<BodyMallOrderDetailUse> list) { + try { + Boolean use = true; + for (BodyMallOrderDetailUse body : list) { + if (use) { + use = orderService.use(body); + } + } + return use; + } catch (Exception e) { + return ApiUtils.returnNG(null, e.getMessage()); } - return Boolean.TRUE; } @PostMapping(value = "/useList") -- Gitblit v1.7.1