From 796f43299f096446bfa708258ecfec0d2930ef45 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 20 Aug 2024 13:23:13 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 9 +- .../system/cashierservice/bean/LogTag.java | 2 +- .../controller/OrderController.java | 19 +- .../system/cashierservice/entity/OrderVo.java | 2 + .../cashierservice/entity/TbCashierCart.java | 7 +- .../entity/dto/UpdateVipDTO.java | 23 ++ .../cashierservice/entity/vo/CartVo.java | 7 +- .../mybatis/MPCashierCartMapper.java | 7 + .../mybatis/MpShopTableMapper.java | 8 + .../cashierservice/rabbit/RabbitProducer.java | 2 - .../cashierservice/service/OrderService.java | 206 ++++++++++++++---- 11 files changed, 232 insertions(+), 60 deletions(-) create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/UpdateVipDTO.java create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MPCashierCartMapper.java create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MpShopTableMapper.java diff --git a/pom.xml b/pom.xml index 5e5deff..15b70c2 100644 --- a/pom.xml +++ b/pom.xml @@ -69,10 +69,11 @@ 1.9.4 - org.mybatis.spring.boot - mybatis-spring-boot-starter - 2.1.1 + com.baomidou + mybatis-plus-boot-starter + 3.5.7 + org.mybatis.generator mybatis-generator-core @@ -266,4 +267,4 @@ - \ No newline at end of file + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/bean/LogTag.java b/src/main/java/com/chaozhanggui/system/cashierservice/bean/LogTag.java index 4543914..6222c46 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/bean/LogTag.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/bean/LogTag.java @@ -10,7 +10,7 @@ import lombok.Getter; @Getter public enum LogTag { JPUSH("极光"), CLIENT("安卓"), - LOGIN("登录"), SYSTEM("系统"), CART("订单购物车"); + LOGIN("登录"), SYSTEM("系统"), CART("订单购物车"), PLACE("下单"); private final String value; LogTag(String value) { diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java index 42fc7db..c4c0a3a 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/OrderController.java @@ -6,12 +6,15 @@ import com.alibaba.fastjson.JSONObject; import com.chaozhanggui.system.cashierservice.annotation.MyLog; import com.chaozhanggui.system.cashierservice.bean.LogTag; import com.chaozhanggui.system.cashierservice.entity.OrderVo; +import com.chaozhanggui.system.cashierservice.entity.dto.UpdateVipDTO; import com.chaozhanggui.system.cashierservice.entity.vo.CartVo; import com.chaozhanggui.system.cashierservice.service.OrderService; import com.chaozhanggui.system.cashierservice.sign.Result; import com.chaozhanggui.system.cashierservice.util.TokenUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @CrossOrigin(origins = "*") @@ -24,6 +27,14 @@ public class OrderController { @Autowired private OrderService orderService; + @PutMapping("/updateVip") + @MyLog(value = "代客下单 修改会员", tag = LogTag.PLACE) + public ResponseEntity updateVip( + @Validated @RequestBody UpdateVipDTO updateVipDTO + ) { + return ResponseEntity.ok(orderService.updateVip(updateVipDTO)); + } + @PostMapping("/createCart") public Result createCart(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @@ -34,7 +45,7 @@ public class OrderController { String userId = jsonObject.getString("accountId"); return orderService.createCart(cartVo.getMasterId(),cartVo.getProductId(),cartVo.getShopId(), cartVo.getSkuId(),cartVo.getNumber(),userId,clientType,cartVo.getCartId(),cartVo.getIsGift(), - cartVo.getIsPack(),cartVo.getUuid(),cartVo.getType()); + cartVo.getIsPack(),cartVo.getUuid(),cartVo.getType(), cartVo.getVipUserId(), cartVo.getTableId()); } @MyLog(value = "查询购物车信息", tag = LogTag.CART) @@ -44,12 +55,13 @@ public class OrderController { @RequestHeader("clientType") String clientType, @RequestParam(value = "masterId", required = false) String masterId, @RequestParam(required = false) String tableId, + @RequestParam(required = false) Integer vipUserId, @RequestParam("shopId") String shopId ){ if (tableId == null && StrUtil.isBlank(masterId)) { return Result.fail("masterId和tableId不能同时为空"); } - return orderService.queryCart(masterId,shopId); + return orderService.queryCart(masterId,shopId, vipUserId, tableId); } @@ -90,7 +102,8 @@ public class OrderController { JSONObject jsonObject = TokenUtil.parseParamFromToken(token); String userId = jsonObject.getString("accountId"); String code = jsonObject.getString("code"); - return orderService.cartStatus(Integer.valueOf(cartVo.getShopId()),cartVo.getMasterId(),cartVo.getStatus(),userId,cartVo.getUuid(),clientType); + return orderService.cartStatus(Integer.valueOf(cartVo.getShopId()),cartVo.getMasterId(), + cartVo.getStatus(),userId,cartVo.getUuid(),clientType, cartVo.getVipUserId(), cartVo.getTableId()); } @PostMapping("/createOrder") public Result createOrder(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/OrderVo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/OrderVo.java index 3934591..d1aeda1 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/OrderVo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/OrderVo.java @@ -12,4 +12,6 @@ public class OrderVo { private Integer shopId; private String userId; private Integer merchantId; + private String tableId; + private Integer vipUserId; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbCashierCart.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbCashierCart.java index 12e0100..5c22747 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbCashierCart.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbCashierCart.java @@ -1,5 +1,6 @@ package com.chaozhanggui.system.cashierservice.entity; +import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import java.io.Serializable; @@ -57,8 +58,12 @@ public class TbCashierCart implements Serializable { private Long updatedAt; private Integer userId; private String tableId; + + @TableField(exist = false) private TbProductSpec tbProductSpec; + + @TableField(exist = false) private String selectSpec=""; private static final long serialVersionUID = 1L; -} \ No newline at end of file +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/UpdateVipDTO.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/UpdateVipDTO.java new file mode 100644 index 0000000..06074be --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/UpdateVipDTO.java @@ -0,0 +1,23 @@ +package com.chaozhanggui.system.cashierservice.entity.dto; + +import lombok.Data; +import org.hibernate.validator.constraints.Range; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Data +public class UpdateVipDTO { + @NotNull + private Integer shopId; + @NotEmpty + private String tableId; + @NotNull + private String masterId; + + private Integer vipUserId; + @NotNull + @Range(min = 0, max = 1) + private Integer type; +} + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/CartVo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/CartVo.java index a4e701c..6959c99 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/CartVo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/CartVo.java @@ -5,10 +5,6 @@ import lombok.Data; @Data public class CartVo { private String productId; - - // orderId不为空为代客下单 - private String masterId; - private String tableId; private String shopId; private Integer skuId; private Integer number; @@ -18,4 +14,7 @@ public class CartVo { private String uuid; private String type; private Integer cartId; + private String masterId; + private String tableId; + private Integer vipUserId; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MPCashierCartMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MPCashierCartMapper.java new file mode 100644 index 0000000..6696f50 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MPCashierCartMapper.java @@ -0,0 +1,7 @@ +package com.chaozhanggui.system.cashierservice.mybatis; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chaozhanggui.system.cashierservice.entity.TbCashierCart; + +public interface MPCashierCartMapper extends BaseMapper { +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MpShopTableMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MpShopTableMapper.java new file mode 100644 index 0000000..c33b5fa --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/mybatis/MpShopTableMapper.java @@ -0,0 +1,8 @@ +package com.chaozhanggui.system.cashierservice.mybatis; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chaozhanggui.system.cashierservice.entity.TbCashierCart; +import com.chaozhanggui.system.cashierservice.entity.TbShopTable; + +public interface MpShopTableMapper extends BaseMapper { +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java index 89851f7..9a32799 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/RabbitProducer.java @@ -37,8 +37,6 @@ public class RabbitProducer implements RabbitTemplate.ConfirmCallback { - - public void cons(String content){ CorrelationData correlationId = new CorrelationData(UUID.randomUUID().toString()); rabbitTemplate.convertAndSend(RabbitConstants.CONS_COLLECT_PUT, RabbitConstants.CONS_COLLECT_ROUTINGKEY_PUT, content, correlationId); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java index 02885eb..fb34dd9 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -1,17 +1,23 @@ package com.chaozhanggui.system.cashierservice.service; -import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.chaozhanggui.system.cashierservice.bean.ShopWxMsgTypeEnum; import com.chaozhanggui.system.cashierservice.dao.*; import com.chaozhanggui.system.cashierservice.entity.*; +import com.chaozhanggui.system.cashierservice.entity.dto.UpdateVipDTO; import com.chaozhanggui.system.cashierservice.entity.po.*; import com.chaozhanggui.system.cashierservice.entity.vo.CartVo; +import com.chaozhanggui.system.cashierservice.exception.MsgException; +import com.chaozhanggui.system.cashierservice.mybatis.MPCashierCartMapper; +import com.chaozhanggui.system.cashierservice.mybatis.MpShopTableMapper; import com.chaozhanggui.system.cashierservice.rabbit.RabbitProducer; import com.chaozhanggui.system.cashierservice.sign.CodeEnum; import com.chaozhanggui.system.cashierservice.sign.Result; @@ -26,7 +32,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.sql.Timestamp; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; @@ -68,6 +73,7 @@ public class OrderService { RedisUtil redisUtil; private final WxAccountUtil wxAccountUtil; + private final MPCashierCartMapper mpCashierCartMapper; @Autowired RabbitProducer producer; @@ -77,6 +83,7 @@ public class OrderService { private final TbUserShopMsgMapper tbUserShopMsgMapper; private final TbShopOpenIdMapper shopOpenIdMapper; + private final MpShopTableMapper mpShopTableMapper; @Autowired private TbProskuConMapper tbProskuConMapper; @@ -90,16 +97,18 @@ public class OrderService { @Autowired private ProductService productService; - public OrderService(WxAccountUtil wxAccountUtil, WechatUtil wechatUtil, TbUserShopMsgMapper tbUserShopMsgMapper, TbShopOpenIdMapper shopOpenIdMapper) { + public OrderService(WxAccountUtil wxAccountUtil, MPCashierCartMapper mpCashierCartMapper, WechatUtil wechatUtil, TbUserShopMsgMapper tbUserShopMsgMapper, TbShopOpenIdMapper shopOpenIdMapper, MpShopTableMapper mpShopTableMapper) { this.wxAccountUtil = wxAccountUtil; + this.mpCashierCartMapper = mpCashierCartMapper; this.wechatUtil = wechatUtil; this.tbUserShopMsgMapper = tbUserShopMsgMapper; this.shopOpenIdMapper = shopOpenIdMapper; + this.mpShopTableMapper = mpShopTableMapper; } @Transactional(rollbackFor = Exception.class) public Result createCart(String masterId, String productId, String shopId, Integer skuId, Integer number, - String userId, String clientType, Integer cartId, String isGift, String isPack, String uuid, String type) { + String userId, String clientType, Integer cartId, String isGift, String isPack, String uuid, String type, Integer vipUserId, String tableId) { if (Objects.isNull(number) || number < 0) { return Result.fail(CodeEnum.NUMBER); } @@ -128,10 +137,19 @@ public class OrderService { return Result.fail(CodeEnum.PRODUCTSKUERROR); } + // 台桌点单 + if ((StrUtil.isNotBlank(tableId))) { + TbShopTable shopTable = mpShopTableMapper.selectOne(new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, tableId) + .eq(TbShopTable::getStatus, "opening")); + if (shopTable == null) { + return Result.fail("台桌不存在或未开台"); + } + } - List proskuConList= tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(skuId,shopInfo.getId(),product.getId()); - if(Objects.nonNull(proskuConList)&&proskuConList.size()>0){ + List proskuConList = tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(skuId,shopInfo.getId(),product.getId()); + if(Objects.nonNull(proskuConList) && !proskuConList.isEmpty()){ for (TbProskuCon proskuCon : proskuConList) { if("1".equals(proskuCon.getStatus())){ TbConsInfo consInfo= tbConsInfoMapper.selectByPrimaryKey(proskuCon.getConInfoId()); @@ -144,16 +162,6 @@ public class OrderService { } } - - - - - - - - - - String exists = redisUtil.getMessage(RedisCst.ORDER_CART_EXISTS + cartId); // 首次加入购物车,并且拥有起售数,设置为起售数 @@ -191,6 +199,7 @@ public class OrderService { masterId = "#" + String.format("%03d", 1); } } + TbCashierCart cart = cashierCartMapper.selectByPrimaryKey(cartId); if (Objects.nonNull(cart)) { @@ -201,6 +210,7 @@ public class OrderService { cashierCart.setNumber(cashierCart.getNumber()+number); cashierCart.setTotalNumber(cashierCart.getNumber()+number); cashierCart.setUpdatedAt(System.currentTimeMillis()); + cashierCart.setUserId(vipUserId); cashierCartMapper.updateByPrimaryKey(cashierCart); cashierCartMapper.deleteByPrimaryKey(cart.getId()); @@ -212,6 +222,8 @@ public class OrderService { cart.setNumber(number); cart.setIsGift(isGift); cart.setIsPack(isPack); + cart.setUserId(vipUserId); + if (isPack.equals("false")){ cart.setPackFee(BigDecimal.ZERO); }else { @@ -227,10 +239,6 @@ public class OrderService { cart.setUuid(uuid); cashierCartMapper.updateByPrimaryKeySelective(cart); } - - - - } else { List list = cashierCartMapper.selectALlByMasterId(masterId, "create"); TbCashierCart cashierCart = cashierCartMapper.selectByDetail(masterId, productId, shopId, skuId.toString(), DateUtils.getDay(), uuid); @@ -252,6 +260,7 @@ public class OrderService { cashierCart.setStatus("create"); cashierCart.setIsPack(isPack); cashierCart.setIsGift(isGift); + cashierCart.setUserId(vipUserId); if (isGift.equals("false")) { cashierCart.setTotalAmount(new BigDecimal(number).multiply(skuWithBLOBs.getSalePrice())); } else { @@ -273,6 +282,7 @@ public class OrderService { cashierCartMapper.insert(cashierCart); cart=cashierCart; } else { + cashierCart.setUserId(vipUserId); if (type.equals("add")) { cashierCart.setNumber(cashierCart.getNumber() + number); @@ -284,8 +294,9 @@ public class OrderService { }else { cashierCart.setPackFee(new BigDecimal(number).multiply(product.getPackFee())); } + cashierCart.setUserId(vipUserId); cashierCart.setTotalAmount(new BigDecimal(cashierCart.getNumber()).multiply(skuWithBLOBs.getSalePrice()).add(cashierCart.getPackFee())); - cashierCartMapper.updateByPrimaryKeySelective(cashierCart); + mpCashierCartMapper.updateById(cashierCart); } } else { cashierCartMapper.updateStatus(cashierCart.getId(), "close"); @@ -344,27 +355,48 @@ public class OrderService { } } - public Result queryCart(String masterId, String shopId) { + public Result queryCart(String masterId, String shopId, Integer vipUserId, String tableId) { if (StringUtils.isEmpty(shopId)) { return Result.fail(CodeEnum.SHOPINFONOEXIST); } String day = DateUtils.getDay(); - List list = cashierCartMapper.selectByMaskerId(masterId, Integer.valueOf(shopId),"create",day); - if (list.size() < 1){ - list = cashierCartMapper.selectByMaskerId(masterId, Integer.valueOf(shopId), "refund",day); - if (list.size() > 0){ - if (list.size() < 1) { + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, shopId); + + // 普通点单 + if (StrUtil.isBlank(tableId)) { + queryWrapper.eq(TbCashierCart::getMasterId, masterId); + queryWrapper.isNull(TbCashierCart::getTableId); + // 台桌点单 + }else if (StrUtil.isNotBlank(tableId) && vipUserId == null) { + queryWrapper.eq(TbCashierCart::getTableId, tableId) + .eq(TbCashierCart::getMasterId, masterId); + // 会员点单 + }else { + queryWrapper.eq(TbCashierCart::getUserId, vipUserId); + } + + +// List list = cashierCartMapper.selectByMaskerId(masterId, Integer.valueOf(shopId),"create",day); + List list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create")); + if (list.isEmpty()){ + list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "refund")); +// list = cashierCartMapper.selectByMaskerId(masterId, Integer.valueOf(shopId), "refund",day); + if (!list.isEmpty()){ + if (list.isEmpty()) { return Result.fail(CodeEnum.CARTJH); } int orderId = 0; String uuid = ""; for (TbCashierCart cashierCart : list) { if (StringUtils.isNotEmpty(cashierCart.getOrderId())) { - orderId = Integer.valueOf(cashierCart.getOrderId()); - break; + orderId = Integer.parseInt(cashierCart.getOrderId()); } + cashierCart.setStatus("create"); } - cashierCartMapper.updateStatusByMaster(Integer.valueOf(shopId), masterId, "create", day, uuid); + mpCashierCartMapper.insertOrUpdate(list); +// cashierCartMapper.updateStatusByMaster(Integer.valueOf(shopId), masterId, "create", day, uuid); if (orderId > 0) { tbOrderInfoMapper.updateStatusById(orderId, "cancelled"); orderDetailMapper.updateStatusByOrderId(orderId, "cancelled"); @@ -446,9 +478,32 @@ public class OrderService { @Transactional(rollbackFor = Exception.class) public Result createOrder(OrderVo orderVo, String clientType, String token) { String day = DateUtils.getDay(); - List list = cashierCartMapper.selectAllCreateOrder(orderVo.getMasterId(), orderVo.getShopId(), day, "create", orderVo.getUuid()); - if (list.size() < 1) { - list = cashierCartMapper.selectAllCreateOrder(orderVo.getMasterId(), orderVo.getShopId(), day, "create", orderVo.getUuid()); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, orderVo.getShopId()) + .eq(TbCashierCart::getStatus, "create"); + + + // 普通点单 + if (StrUtil.isBlank(orderVo.getTableId())) { + queryWrapper.eq(TbCashierCart::getMasterId, orderVo.getMasterId()) + .eq(TbCashierCart::getTradeDay, day); + queryWrapper.isNull(TbCashierCart::getTableId); + // 台桌点单 + }else if (StrUtil.isNotBlank(orderVo.getTableId()) && orderVo.getVipUserId() == null) { + queryWrapper.eq(TbCashierCart::getTableId, orderVo.getTableId()) + .eq(TbCashierCart::getTradeDay, day) + .eq(TbCashierCart::getMasterId, orderVo.getMasterId()); + // 会员点单 + }else { + queryWrapper.eq(TbCashierCart::getUserId, orderVo.getVipUserId()); + } + + List list = mpCashierCartMapper.selectList(queryWrapper); +// List list = cashierCartMapper.selectAllCreateOrder(orderVo.getMasterId(), orderVo.getShopId(), day, "create", orderVo.getUuid()); + if (list.isEmpty()) { + list = mpCashierCartMapper.selectList(queryWrapper); +// list = cashierCartMapper.selectAllCreateOrder(orderVo.getMasterId(), orderVo.getShopId(), day, "create", orderVo.getUuid()); } if(ObjectUtil.isEmpty(list)||ObjectUtil.isNull(list)||list.size()<=0){ @@ -735,11 +790,34 @@ public class OrderService { @Transactional(rollbackFor = Exception.class) - public Result cartStatus(Integer shopId, String masterId, String status, String userId, String uuid, String clientType) { + public Result cartStatus(Integer shopId, String masterId, String status, String userId, String uuid, + String clientType, Integer vipUserId, String tableId) { String newUuid = redisUtil.getMessage("CART:UUID:" + shopId + userId)+""; String day = DateUtils.getDay(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, shopId); + + + // 普通点单 + if (StrUtil.isBlank(tableId)) { + queryWrapper.eq(TbCashierCart::getMasterId, masterId); + queryWrapper.isNull(TbCashierCart::getTableId); + // 台桌点单 + }else if (StrUtil.isNotBlank(tableId) && vipUserId == null) { + queryWrapper.eq(TbCashierCart::getTableId, tableId) + .eq(TbCashierCart::getMasterId, masterId); + // 会员点单 + }else { + queryWrapper + .eq(TbCashierCart::getTableId, tableId) + .eq(TbCashierCart::getUserId, vipUserId); + } + + + if ("true".equals(status)) { - List list = cashierCartMapper.selectAllCreateOrder(masterId, shopId, day, "create", uuid); + List list = mpCashierCartMapper.selectList(queryWrapper); +// List list = cashierCartMapper.selectAllCreateOrder(masterId, shopId, day, "create", uuid); if (list.size() < 1) { return Result.fail(CodeEnum.CREATEORDER); } @@ -810,31 +888,34 @@ public class OrderService { if (StringUtils.isNotEmpty(cashierCart.getOrderId())) { flag = false; } + cashierCart.setUserId(vipUserId); cashierCart.setOrderId(orderId + ""); cashierCart.setUpdatedAt(System.currentTimeMillis()); cashierCart.setPendingAt(System.currentTimeMillis()); cashierCart.setStatus("refund"); cashierCart.setUuid(newUuid); - cashierCartMapper.updateByPrimaryKeySelective(cashierCart); + mpCashierCartMapper.updateById(cashierCart); } if (flag) { redisUtil.deleteByKey("SHOP:CODE:USER:" + clientType + ":" + shopId + ":" + day + userId); } } else { - - List list = cashierCartMapper.selectAllCreateOrder(masterId, shopId, "", "refund", uuid); - if (list.size() < 1) { + List list = mpCashierCartMapper.selectList(queryWrapper + .eq(TbCashierCart::getStatus, "refund")); +// List list = cashierCartMapper.selectAllCreateOrder(masterId, shopId, "", "refund", uuid); + if (list.isEmpty()) { return Result.fail(CodeEnum.CARTJH); } int orderId = 0; for (TbCashierCart cashierCart : list) { if (StringUtils.isNotEmpty(cashierCart.getOrderId())) { - orderId = Integer.valueOf(cashierCart.getOrderId()); - break; + orderId = Integer.parseInt(cashierCart.getOrderId()); } + cashierCart.setStatus("create"); } - cashierCartMapper.updateStatusByMaster(shopId, masterId, "create", day, uuid); + mpCashierCartMapper.insertOrUpdate(list); +// cashierCartMapper.updateStatusByMaster(shopId, masterId, "create", day, uuid); if (orderId > 0) { tbOrderInfoMapper.updateStatusById(orderId, "cancelled"); orderDetailMapper.updateStatusByOrderId(orderId, "cancelled"); @@ -881,10 +962,30 @@ public class OrderService { @Transactional(rollbackFor = Exception.class) public Result clearCart(CartVo cartVo) { String day = DateUtils.getDay(); - List list = cashierCartMapper.selectAllCreateOrder(cartVo.getMasterId(), Integer.valueOf(cartVo.getShopId()), day, "create", cartVo.getUuid()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, cartVo.getShopId()) + .eq(TbCashierCart::getTradeDay, day) + .eq(TbCashierCart::getStatus, "create"); + + + // 普通点单 + if (StrUtil.isBlank(cartVo.getTableId())) { + queryWrapper.eq(TbCashierCart::getMasterId, cartVo.getMasterId()); + queryWrapper.isNull(TbCashierCart::getTableId); + // 台桌点单 + }else if (StrUtil.isNotBlank(cartVo.getTableId()) && cartVo.getVipUserId() == null) { + queryWrapper.eq(TbCashierCart::getTableId, cartVo.getTableId()) + .eq(TbCashierCart::getMasterId, cartVo.getMasterId()); + // 会员点单 + }else { + queryWrapper.eq(TbCashierCart::getUserId, cartVo.getVipUserId()); + } + + List list = mpCashierCartMapper.selectList(queryWrapper); +// List list = cashierCartMapper.selectAllCreateOrder(cartVo.getMasterId(), Integer.valueOf(cartVo.getShopId()), day, "create", cartVo.getUuid()); int orderId = 0; - List productSkuPos=new ArrayList<>(); - List skuIds=new ArrayList<>(); + List productSkuPos = new ArrayList<>(); + List skuIds = new ArrayList<>(); for (TbCashierCart cashierCart : list) { // 数量减少, 返还库存 String message = redisUtil.getMessage(RedisCst.ORDER_PRODUCT_NUM + cashierCart.getId()); @@ -1379,4 +1480,19 @@ public class OrderService { JSONObject jsonObject = JSON.parseObject(HttpClientUtil.doGet(requestUrl,requestUrlParam)); return jsonObject; } + + public Object updateVip(UpdateVipDTO updateVipDTO) { + LambdaUpdateWrapper queryWrapper = new LambdaUpdateWrapper<>(); + queryWrapper.eq(TbCashierCart::getTableId, updateVipDTO.getTableId()) + .eq(TbCashierCart::getShopId, updateVipDTO.getShopId()) + .eq(TbCashierCart::getMasterId, updateVipDTO.getMasterId()); + + if (updateVipDTO.getType().equals(0)) { + queryWrapper.set(TbCashierCart::getUserId, null); + queryWrapper.eq(TbCashierCart::getUserId, updateVipDTO.getVipUserId()); + }else { + queryWrapper.set(TbCashierCart::getUserId, updateVipDTO.getVipUserId()); + } + return mpCashierCartMapper.update(null, queryWrapper); + } }