代客下单支持外带用餐模式
This commit is contained in:
parent
e9fa13fdd8
commit
1b3158930f
|
|
@ -91,7 +91,7 @@ public class TbPlaceController {
|
||||||
@PutMapping("/returnCart")
|
@PutMapping("/returnCart")
|
||||||
@Log("代客下单 退单")
|
@Log("代客下单 退单")
|
||||||
@ApiOperation("代客下单 清空购物车 /shop/table")
|
@ApiOperation("代客下单 清空购物车 /shop/table")
|
||||||
public ResponseEntity<Object> returnOrder(@Validated @RequestBody RemoveCartDTO removeCartDTO) {
|
public ResponseEntity<Object> returnOrder(@Validated @RequestBody ReturnOrderDTO removeCartDTO) {
|
||||||
tbShopTableService.returnCart(removeCartDTO);
|
tbShopTableService.returnCart(removeCartDTO);
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
@ -112,40 +112,40 @@ public class TbPlaceController {
|
||||||
public ResponseEntity<Object> getCart(
|
public ResponseEntity<Object> getCart(
|
||||||
@RequestParam(defaultValue = "1") Integer page,
|
@RequestParam(defaultValue = "1") Integer page,
|
||||||
@RequestParam(defaultValue = "10") Integer size,
|
@RequestParam(defaultValue = "10") Integer size,
|
||||||
@RequestParam Long tableId,
|
@RequestParam(required = false) Long tableId,
|
||||||
@RequestParam Integer shopId,
|
@RequestParam Integer shopId,
|
||||||
@RequestParam(required = false) Integer vipUserId,
|
@RequestParam String masterId,
|
||||||
@RequestParam String masterId
|
@RequestParam String useType
|
||||||
) {
|
) {
|
||||||
return ResponseEntity.ok(tbShopTableService.getCart(tableId, page, size, shopId, vipUserId, masterId));
|
return ResponseEntity.ok(tbShopTableService.getCart(tableId, page, size, shopId,masterId, useType));
|
||||||
}
|
}
|
||||||
@AnonymousAccess
|
|
||||||
|
|
||||||
|
@AnonymousAccess
|
||||||
@GetMapping("/pending/cart")
|
@GetMapping("/pending/cart")
|
||||||
@Log("代客下单 查询购物车")
|
@Log("代客下单 查询购物车")
|
||||||
@ApiOperation("代客下单 查询购物车 /shop/table")
|
@ApiOperation("代客下单 查询购物车 /shop/table")
|
||||||
public ResponseEntity<Object> getPendingCart(
|
public ResponseEntity<Object> getPendingCart(
|
||||||
@RequestParam Integer shopId,
|
@RequestParam Integer shopId,
|
||||||
@RequestParam String tableId
|
@RequestParam(required = false) String tableId,
|
||||||
|
@RequestParam String useType
|
||||||
) {
|
) {
|
||||||
return ResponseEntity.ok(tbShopTableService.getCar(shopId, tableId));
|
return ResponseEntity.ok(tbShopTableService.getCar(shopId, tableId, useType));
|
||||||
}
|
}
|
||||||
|
|
||||||
@AnonymousAccess
|
@AnonymousAccess
|
||||||
|
|
||||||
@GetMapping("/masterId")
|
@GetMapping("/masterId")
|
||||||
@Log("代客下单 查询购物车")
|
@Log("代客下单 查询购物车")
|
||||||
@ApiOperation("代客下单 ")
|
@ApiOperation("代客下单 ")
|
||||||
public ResponseEntity<Object> getMasterId(
|
public ResponseEntity<Object> getMasterId(
|
||||||
@RequestParam Integer shopId,
|
@RequestParam Integer shopId,
|
||||||
@RequestParam Long tableId,
|
@RequestParam Long tableId,
|
||||||
|
@RequestParam(defaultValue = "") String useType,
|
||||||
@RequestParam(required = false) Integer vipUserId
|
@RequestParam(required = false) Integer vipUserId
|
||||||
) {
|
) {
|
||||||
return ResponseEntity.ok(tbShopTableService.getMasterId(shopId, tableId, vipUserId));
|
return ResponseEntity.ok(tbShopTableService.getMasterId(shopId, tableId, vipUserId, useType));
|
||||||
}
|
}
|
||||||
|
|
||||||
@AnonymousAccess
|
@AnonymousAccess
|
||||||
|
|
||||||
@PostMapping("/order")
|
@PostMapping("/order")
|
||||||
@Log("代客下单 查询购物车")
|
@Log("代客下单 查询购物车")
|
||||||
@ApiOperation("代客下单 查询购物车 /shop/table")
|
@ApiOperation("代客下单 查询购物车 /shop/table")
|
||||||
|
|
@ -156,7 +156,6 @@ public class TbPlaceController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@AnonymousAccess
|
@AnonymousAccess
|
||||||
|
|
||||||
@PostMapping("/pending")
|
@PostMapping("/pending")
|
||||||
@Log("代客下单 查询购物车")
|
@Log("代客下单 查询购物车")
|
||||||
@ApiOperation("代客下单 查询购物车 /shop/table")
|
@ApiOperation("代客下单 查询购物车 /shop/table")
|
||||||
|
|
@ -167,7 +166,6 @@ public class TbPlaceController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@AnonymousAccess
|
@AnonymousAccess
|
||||||
|
|
||||||
@GetMapping("/payType")
|
@GetMapping("/payType")
|
||||||
@Log("代客下单 查询购物车")
|
@Log("代客下单 查询购物车")
|
||||||
@ApiOperation("代客下单 查询购物车 /shop/table")
|
@ApiOperation("代客下单 查询购物车 /shop/table")
|
||||||
|
|
@ -223,8 +221,6 @@ public class TbPlaceController {
|
||||||
return ResponseEntity.ok(tbShopTableService.choseCount(choseCountDTO));
|
return ResponseEntity.ok(tbShopTableService.choseCount(choseCountDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@AnonymousAccess
|
@AnonymousAccess
|
||||||
@PutMapping("/updateVip")
|
@PutMapping("/updateVip")
|
||||||
@Log("代客下单 查询购物车")
|
@Log("代客下单 查询购物车")
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package cn.ysk.cashier.dto.shoptable;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import javax.validation.constraints.Min;
|
import javax.validation.constraints.Min;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotEmpty;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
|
@ -17,7 +18,6 @@ public class AddCartDTO {
|
||||||
private Integer skuId;
|
private Integer skuId;
|
||||||
@NotNull
|
@NotNull
|
||||||
private Integer shopId;
|
private Integer shopId;
|
||||||
@NotEmpty
|
|
||||||
private String tableId;
|
private String tableId;
|
||||||
@NotNull
|
@NotNull
|
||||||
@Min(1)
|
@Min(1)
|
||||||
|
|
@ -26,4 +26,8 @@ public class AddCartDTO {
|
||||||
private boolean isGift;
|
private boolean isGift;
|
||||||
private Integer cartId;
|
private Integer cartId;
|
||||||
private String note;
|
private String note;
|
||||||
|
|
||||||
|
// 用餐类型
|
||||||
|
@NotBlank
|
||||||
|
private String useType;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,4 +17,6 @@ public class ChoseCountDTO {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Min(1)
|
@Min(1)
|
||||||
private Integer num;
|
private Integer num;
|
||||||
|
@NotEmpty
|
||||||
|
private String useType;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,4 +16,5 @@ public class ChoseTableDTO {
|
||||||
private String newTableId;
|
private String newTableId;
|
||||||
@NotEmpty
|
@NotEmpty
|
||||||
private String oldTableId;
|
private String oldTableId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,12 @@ import javax.validation.constraints.NotEmpty;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class ClearCartDTO {
|
public class ClearCartDTO {
|
||||||
@NotEmpty
|
@NotEmpty
|
||||||
private String masterId;
|
private String masterId;
|
||||||
private Integer vipUserId;
|
|
||||||
@NotNull
|
|
||||||
private Long tableId;
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private String shopId;
|
private String shopId;
|
||||||
|
@NotEmpty
|
||||||
|
private String useType;
|
||||||
|
private Long tableId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,12 @@ import javax.validation.constraints.NotNull;
|
||||||
public class CreateOrderDTO {
|
public class CreateOrderDTO {
|
||||||
@NotEmpty
|
@NotEmpty
|
||||||
private String masterId;
|
private String masterId;
|
||||||
private Integer vipUserId;
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private Integer shopId;
|
private Integer shopId;
|
||||||
@NotEmpty
|
|
||||||
private String tableId;
|
private String tableId;
|
||||||
private String note;
|
private String note;
|
||||||
private boolean postPay;
|
private boolean postPay;
|
||||||
private Integer orderId;
|
private Integer orderId;
|
||||||
|
@NotEmpty
|
||||||
|
private String useType;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,12 @@ package cn.ysk.cashier.dto.shoptable;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class DeleteOrderDTO {
|
public class DeleteOrderDTO {
|
||||||
|
@NotNull
|
||||||
private Integer shopId;
|
private Integer shopId;
|
||||||
|
@NotNull
|
||||||
private Integer orderId;
|
private Integer orderId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ public class PackCartDTO {
|
||||||
private Integer vipUserId;
|
private Integer vipUserId;
|
||||||
@NotNull
|
@NotNull
|
||||||
private Integer shopId;
|
private Integer shopId;
|
||||||
@NotEmpty
|
|
||||||
private String tableId;
|
private String tableId;
|
||||||
@NotNull
|
@NotNull
|
||||||
@Range(min = 0, max = 1)
|
@Range(min = 0, max = 1)
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package cn.ysk.cashier.dto.shoptable;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.bouncycastle.asn1.cmc.PendInfo;
|
import org.bouncycastle.asn1.cmc.PendInfo;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotEmpty;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
|
@ -12,9 +13,10 @@ public class PendingDTO {
|
||||||
@NotNull
|
@NotNull
|
||||||
private Integer shopId;
|
private Integer shopId;
|
||||||
private String tableId;
|
private String tableId;
|
||||||
private Integer vipUserId;
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private Boolean isPending;
|
private Boolean isPending;
|
||||||
private Integer orderId;
|
private Integer orderId;
|
||||||
private String note;
|
private String note;
|
||||||
|
@NotBlank
|
||||||
|
private String useType;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package cn.ysk.cashier.dto.shoptable;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotEmpty;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
|
@ -11,6 +12,7 @@ public class RemoveCartDTO {
|
||||||
private Integer cartId;
|
private Integer cartId;
|
||||||
@NotNull
|
@NotNull
|
||||||
private Integer shopId;
|
private Integer shopId;
|
||||||
@NotNull
|
|
||||||
private Long tableId;
|
private Long tableId;
|
||||||
|
@NotBlank
|
||||||
|
private String useType;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,4 +19,5 @@ public class UpdateVipDTO {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Range(min = 0, max = 1)
|
@Range(min = 0, max = 1)
|
||||||
private Integer type;
|
private Integer type;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
package cn.ysk.cashier.enums;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public enum OrderUseTypeEnum {
|
||||||
|
TAKEOUT("takeout"),
|
||||||
|
DINE_IN_AFTER("dine-in-after"),
|
||||||
|
DINE_IN_BEFORE("dine-in-before");
|
||||||
|
private final String value;
|
||||||
|
|
||||||
|
OrderUseTypeEnum(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -20,11 +20,8 @@ public interface TbCashierCartMapper extends BaseMapper<TbCashierCart> {
|
||||||
" from tb_cashier_cart where table_id is not null and shop_id = #{shopId} and status = 'refund' group by shop_Id, master_id order by trade_day desc")
|
" from tb_cashier_cart where table_id is not null and shop_id = #{shopId} and status = 'refund' group by shop_Id, master_id order by trade_day desc")
|
||||||
List<CarVO> selectCar(@Param("shopId") Integer shopId);
|
List<CarVO> selectCar(@Param("shopId") Integer shopId);
|
||||||
|
|
||||||
@Select("select a.id orderId,b.pending_at pendingAt, sum(b.total_amount) totalAmount, count(b.id) totalCount, sum(b.total_number) totalNumber, a.remark from tb_order_info a " +
|
|
||||||
"JOIN tb_cashier_cart b on a.id=b.order_id " +
|
List<PendingCountVO> countPending(@Param("shopId") Integer shopId, @Param("tableId") String tableId, @Param("day") String day, @Param("useType") String useType);
|
||||||
"where a.shop_id=#{shopId} and a.`status`='pending' and a.table_id=#{tableId} and a.trade_day=#{day}" +
|
|
||||||
"GROUP BY a.id ORDER BY a.id desc ")
|
|
||||||
List<PendingCountVO> countPending(@Param("shopId") Integer shopId, @Param("tableId") String tableId, @Param("day") String day);
|
|
||||||
|
|
||||||
@Select("select a.*, b.spec_snap from tb_cashier_cart as a left join tb_product_sku as b on a.sku_id=b.id where a.shop_id=#{shopId} and a.status='refund';")
|
@Select("select a.*, b.spec_snap from tb_cashier_cart as a left join tb_product_sku as b on a.sku_id=b.id where a.shop_id=#{shopId} and a.status='refund';")
|
||||||
List<TbCashierCartVO> selectPending(Integer shopId);
|
List<TbCashierCartVO> selectPending(Integer shopId);
|
||||||
|
|
|
||||||
|
|
@ -159,6 +159,8 @@ public class TbCashierCart implements Serializable {
|
||||||
private Integer placeNum;
|
private Integer placeNum;
|
||||||
@Column(name = "`note`")
|
@Column(name = "`note`")
|
||||||
private String note;
|
private String note;
|
||||||
|
@Column(name = "`use_type`")
|
||||||
|
private String useType;
|
||||||
|
|
||||||
public void copy(TbCashierCart source){
|
public void copy(TbCashierCart source){
|
||||||
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
||||||
|
|
|
||||||
|
|
@ -119,6 +119,9 @@ public class TbOrderDetail implements Serializable {
|
||||||
@Column(name = "`cart_id`")
|
@Column(name = "`cart_id`")
|
||||||
private Integer cartId;
|
private Integer cartId;
|
||||||
|
|
||||||
|
@Column(name = "`use_type`")
|
||||||
|
private String useType;
|
||||||
|
|
||||||
public void copy(TbOrderDetail source){
|
public void copy(TbOrderDetail source){
|
||||||
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import cn.ysk.cashier.config.security.security.TokenProvider;
|
||||||
import cn.ysk.cashier.cons.RedisConstant;
|
import cn.ysk.cashier.cons.RedisConstant;
|
||||||
import cn.ysk.cashier.cons.rabbit.RabbitConstants;
|
import cn.ysk.cashier.cons.rabbit.RabbitConstants;
|
||||||
import cn.ysk.cashier.dto.shoptable.*;
|
import cn.ysk.cashier.dto.shoptable.*;
|
||||||
|
import cn.ysk.cashier.enums.OrderUseTypeEnum;
|
||||||
import cn.ysk.cashier.enums.ShopWxMsgTypeEnum;
|
import cn.ysk.cashier.enums.ShopWxMsgTypeEnum;
|
||||||
import cn.ysk.cashier.enums.TableStateEnum;
|
import cn.ysk.cashier.enums.TableStateEnum;
|
||||||
import cn.ysk.cashier.exception.BadRequestException;
|
import cn.ysk.cashier.exception.BadRequestException;
|
||||||
|
|
@ -341,7 +342,9 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TbCashierCart addCartForUser(AddCartDTO addCartDTO) {
|
public TbCashierCart addCartForUser(AddCartDTO addCartDTO) {
|
||||||
checkTableIsOpen(addCartDTO.getTableId());
|
if (StrUtil.isNotBlank(addCartDTO.getTableId())) {
|
||||||
|
checkTableIsOpen(addCartDTO.getTableId());
|
||||||
|
}
|
||||||
|
|
||||||
int currentPlaceNum = getCurrentPlaceNum(addCartDTO.getTableId(), addCartDTO.getShopId().toString());
|
int currentPlaceNum = getCurrentPlaceNum(addCartDTO.getTableId(), addCartDTO.getShopId().toString());
|
||||||
|
|
||||||
|
|
@ -362,15 +365,9 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
.eq(TbCashierCart::getShopId, addCartDTO.getShopId())
|
.eq(TbCashierCart::getShopId, addCartDTO.getShopId())
|
||||||
.eq(TbCashierCart::getSkuId, addCartDTO.getSkuId())
|
.eq(TbCashierCart::getSkuId, addCartDTO.getSkuId())
|
||||||
.eq(TbCashierCart::getProductId, addCartDTO.getProductId())
|
.eq(TbCashierCart::getProductId, addCartDTO.getProductId())
|
||||||
.eq(TbCashierCart::getTableId, addCartDTO.getTableId())
|
|
||||||
.isNull(TbCashierCart::getPlaceNum)
|
.isNull(TbCashierCart::getPlaceNum)
|
||||||
|
.eq(TbCashierCart::getUseType, addCartDTO.getUseType())
|
||||||
.in(TbCashierCart::getStatus, "create", "refund")
|
.in(TbCashierCart::getStatus, "create", "refund")
|
||||||
// .and(q -> {
|
|
||||||
// q.eq(TbCashierCart::getTradeDay, DateUtils.getDay())
|
|
||||||
// .or()
|
|
||||||
// .isNull(TbCashierCart::getTradeDay);
|
|
||||||
//
|
|
||||||
// });
|
|
||||||
.and(query2 -> {
|
.and(query2 -> {
|
||||||
query2.and(query3 -> {
|
query2.and(query3 -> {
|
||||||
query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay())
|
query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay())
|
||||||
|
|
@ -386,6 +383,10 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
query.eq(TbCashierCart::getId, addCartDTO.getCartId());
|
query.eq(TbCashierCart::getId, addCartDTO.getCartId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (StrUtil.isNotBlank(addCartDTO.getTableId())) {
|
||||||
|
query.eq(TbCashierCart::getTableId, addCartDTO.getTableId());
|
||||||
|
}
|
||||||
|
|
||||||
TbCashierCart tbCashierCart = cashierCartMapper.selectOne(query);
|
TbCashierCart tbCashierCart = cashierCartMapper.selectOne(query);
|
||||||
// 增加redis购物车数据
|
// 增加redis购物车数据
|
||||||
String tableCartKey = RedisConstant.getTableCartKey(addCartDTO.getTableId(), addCartDTO.getShopId().toString());
|
String tableCartKey = RedisConstant.getTableCartKey(addCartDTO.getTableId(), addCartDTO.getShopId().toString());
|
||||||
|
|
@ -393,11 +394,14 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
// 首次加入
|
// 首次加入
|
||||||
if (tbCashierCart == null) {
|
if (tbCashierCart == null) {
|
||||||
tbCashierCart = new TbCashierCart();
|
tbCashierCart = new TbCashierCart();
|
||||||
|
tbCashierCart.setUseType(addCartDTO.getUseType());
|
||||||
tbCashierCart.setUserId(addCartDTO.getVipUserId());
|
tbCashierCart.setUserId(addCartDTO.getVipUserId());
|
||||||
tbCashierCart.setCoverImg(product.getCoverImg());
|
tbCashierCart.setCoverImg(product.getCoverImg());
|
||||||
tbCashierCart.setCreatedAt(System.currentTimeMillis());
|
tbCashierCart.setCreatedAt(System.currentTimeMillis());
|
||||||
tbCashierCart.setIsSku(product.getTypeEnum());
|
tbCashierCart.setIsSku(product.getTypeEnum());
|
||||||
tbCashierCart.setTableId(Long.valueOf(addCartDTO.getTableId()));
|
if (StrUtil.isNotBlank(addCartDTO.getTableId())) {
|
||||||
|
tbCashierCart.setTableId(Long.valueOf(addCartDTO.getTableId()));
|
||||||
|
}
|
||||||
tbCashierCart.setName(product.getName());
|
tbCashierCart.setName(product.getName());
|
||||||
tbCashierCart.setProductId(String.valueOf(product.getId()));
|
tbCashierCart.setProductId(String.valueOf(product.getId()));
|
||||||
tbCashierCart.setSalePrice(productSku.getSalePrice());
|
tbCashierCart.setSalePrice(productSku.getSalePrice());
|
||||||
|
|
@ -451,7 +455,9 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
cashierCartRepository.save(tbCashierCart);
|
cashierCartRepository.save(tbCashierCart);
|
||||||
}
|
}
|
||||||
|
|
||||||
setRedisTableCartInfo(addCartDTO.getTableId(), addCartDTO.getShopId().toString(), Collections.singletonList(tbCashierCart), true);
|
if (StrUtil.isNotBlank(addCartDTO.getTableId())) {
|
||||||
|
setRedisTableCartInfo(addCartDTO.getTableId(), addCartDTO.getShopId().toString(), Collections.singletonList(tbCashierCart), true);
|
||||||
|
}
|
||||||
|
|
||||||
return tbCashierCart;
|
return tbCashierCart;
|
||||||
}
|
}
|
||||||
|
|
@ -483,16 +489,17 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeCart(RemoveCartDTO removeCartDTO) {
|
public void removeCart(RemoveCartDTO removeCartDTO) {
|
||||||
int currentPlaceNum = getCurrentPlaceNum(removeCartDTO.getTableId().toString(), removeCartDTO.getShopId().toString());
|
int currentPlaceNum = getCurrentPlaceNum(removeCartDTO.getTableId() == null ? "" : removeCartDTO.getTableId().toString(), removeCartDTO.getShopId().toString());
|
||||||
// 会员点单
|
// 会员点单
|
||||||
TbCashierCart cashierCart = cashierCartMapper.selectOne(new LambdaQueryWrapper<TbCashierCart>()
|
TbCashierCart cashierCart = cashierCartMapper.selectOne(new LambdaQueryWrapper<TbCashierCart>()
|
||||||
.eq(TbCashierCart::getShopId, removeCartDTO.getShopId())
|
.eq(TbCashierCart::getShopId, removeCartDTO.getShopId())
|
||||||
|
.eq(TbCashierCart::getUseType, removeCartDTO.getUseType())
|
||||||
.eq(TbCashierCart::getId, removeCartDTO.getCartId()));
|
.eq(TbCashierCart::getId, removeCartDTO.getCartId()));
|
||||||
if (cashierCart == null) {
|
if (cashierCart == null) {
|
||||||
throw new BadRequestException("购物车商品不存在");
|
throw new BadRequestException("购物车商品不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cashierCart.getPlaceNum() != null && !cashierCart.getPlaceNum().equals(currentPlaceNum)) {
|
if (removeCartDTO.getTableId() != null && cashierCart.getPlaceNum() != null && !cashierCart.getPlaceNum().equals(currentPlaceNum)) {
|
||||||
throw new BadRequestException("已下单商品仅支持退单操作");
|
throw new BadRequestException("已下单商品仅支持退单操作");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -501,26 +508,28 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
.eq(TbOrderDetail::getShopId, cashierCart.getShopId())
|
.eq(TbOrderDetail::getShopId, cashierCart.getShopId())
|
||||||
.eq(TbOrderDetail::getProductId, cashierCart.getProductId())
|
.eq(TbOrderDetail::getProductId, cashierCart.getProductId())
|
||||||
.eq(TbOrderDetail::getProductSkuId, cashierCart.getSkuId())
|
.eq(TbOrderDetail::getProductSkuId, cashierCart.getSkuId())
|
||||||
|
.eq(TbOrderDetail::getUseType, removeCartDTO.getUseType())
|
||||||
.isNull(TbOrderDetail::getPlaceNum)
|
.isNull(TbOrderDetail::getPlaceNum)
|
||||||
.eq(TbOrderDetail::getOrderId, cashierCart.getOrderId()));
|
.eq(TbOrderDetail::getOrderId, cashierCart.getOrderId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
cashierCartMapper.deleteById(cashierCart.getId());
|
cashierCartMapper.deleteById(cashierCart.getId());
|
||||||
|
|
||||||
// 清空购物车 出票
|
if (removeCartDTO.getTableId() != null) {
|
||||||
long carCount = countCar(cashierCart.getTableId(), cashierCart.getShopId(), cashierCart.getMasterId());
|
// 清空购物车 出票
|
||||||
|
long carCount = countCar(cashierCart.getTableId(), cashierCart.getShopId(), cashierCart.getMasterId());
|
||||||
|
|
||||||
log.info("购物车数量: {}", carCount);
|
log.info("购物车数量: {}", carCount);
|
||||||
if (cashierCart.getOrderId() != null && carCount < 1) {
|
if (cashierCart.getOrderId() != null && carCount < 1) {
|
||||||
rabbitMsgUtils.printTicket(String.valueOf(cashierCart.getOrderId()));
|
rabbitMsgUtils.printTicket(String.valueOf(cashierCart.getOrderId()));
|
||||||
|
}
|
||||||
|
setRedisTableCartInfo(removeCartDTO.getTableId().toString(), removeCartDTO.getShopId().toString(), Collections.singletonList(cashierCart), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
setRedisTableCartInfo(removeCartDTO.getTableId().toString(), removeCartDTO.getShopId().toString(), Collections.singletonList(cashierCart), false);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void returnCart(RemoveCartDTO removeCartDTO) {
|
public void returnCart(ReturnOrderDTO removeCartDTO) {
|
||||||
rabbitMsgUtils.printDishesReturnTicket(4450, 9313);
|
rabbitMsgUtils.printDishesReturnTicket(4450, 9313);
|
||||||
|
|
||||||
int currentPlaceNum = getCurrentPlaceNum(removeCartDTO.getTableId().toString(), removeCartDTO.getShopId().toString());
|
int currentPlaceNum = getCurrentPlaceNum(removeCartDTO.getTableId().toString(), removeCartDTO.getShopId().toString());
|
||||||
|
|
@ -562,13 +571,17 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void clearCart(ClearCartDTO clearCartDTO) {
|
public void clearCart(ClearCartDTO clearCartDTO) {
|
||||||
String orderId = redisTemplate.opsForValue().get(RedisConstant.getCurrentOrderKey(clearCartDTO.getTableId().toString(), clearCartDTO.getShopId()));
|
String orderId;
|
||||||
int currentPlaceNum = getCurrentPlaceNum(clearCartDTO.getTableId().toString(), clearCartDTO.getShopId());
|
if (clearCartDTO.getTableId() != null) {
|
||||||
|
orderId = getCurrentOrderId(clearCartDTO.getTableId().toString(), clearCartDTO.getShopId());
|
||||||
|
} else {
|
||||||
|
orderId = "";
|
||||||
|
}
|
||||||
|
|
||||||
cashierCartMapper.delete(new LambdaQueryWrapper<TbCashierCart>()
|
LambdaQueryWrapper<TbCashierCart> query = new LambdaQueryWrapper<TbCashierCart>()
|
||||||
.eq(TbCashierCart::getShopId, clearCartDTO.getShopId())
|
.eq(TbCashierCart::getShopId, clearCartDTO.getShopId())
|
||||||
.eq(TbCashierCart::getTableId, clearCartDTO.getTableId())
|
.isNull(TbCashierCart::getPlaceNum)
|
||||||
.eq(TbCashierCart::getPlaceNum, currentPlaceNum)
|
.eq(TbCashierCart::getUseType, clearCartDTO.getUseType())
|
||||||
.and(q -> {
|
.and(q -> {
|
||||||
q.eq(TbCashierCart::getMasterId, clearCartDTO.getMasterId())
|
q.eq(TbCashierCart::getMasterId, clearCartDTO.getMasterId())
|
||||||
.or()
|
.or()
|
||||||
|
|
@ -580,20 +593,14 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
q.eq(TbCashierCart::getOrderId, orderId)
|
q.eq(TbCashierCart::getOrderId, orderId)
|
||||||
.or()
|
.or()
|
||||||
.isNull(TbCashierCart::getOrderId);
|
.isNull(TbCashierCart::getOrderId);
|
||||||
})
|
});
|
||||||
);
|
|
||||||
|
|
||||||
|
if (clearCartDTO.getTableId() != null) {
|
||||||
|
query.eq(TbCashierCart::getTableId, clearCartDTO.getTableId());
|
||||||
|
|
||||||
// tbShopTableRepository.deleteByTableIdAndShopId(clearCartDTO.getTableId(), clearCartDTO.getShopId());
|
|
||||||
|
|
||||||
if (StrUtil.isNotBlank(orderId)) {
|
|
||||||
orderDetailMapper.delete(new LambdaQueryWrapper<TbOrderDetail>()
|
|
||||||
.eq(TbOrderDetail::getShopId, clearCartDTO.getShopId())
|
|
||||||
.eq(TbOrderDetail::getPlaceNum, currentPlaceNum)
|
|
||||||
.eq(TbOrderDetail::getOrderId, orderId));
|
|
||||||
rabbitMsgUtils.printTicket(orderId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cashierCartMapper.delete(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
private long countCar(Long tableId, String shopId, String masterId) {
|
private long countCar(Long tableId, String shopId, String masterId) {
|
||||||
|
|
@ -606,11 +613,11 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> getCart(Long tableId, Integer page,
|
public Map<String, Object> getCart(Long tableId, Integer page,
|
||||||
Integer size, Integer shopId, Integer vipUserId, String masterId) {
|
Integer size, Integer shopId, String masterId, String useType) {
|
||||||
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
||||||
.eq(TbCashierCart::getTableId, tableId)
|
|
||||||
.in(TbCashierCart::getStatus, "create", "refund", "return")
|
.in(TbCashierCart::getStatus, "create", "refund", "return")
|
||||||
.eq(TbCashierCart::getShopId, shopId)
|
.eq(TbCashierCart::getShopId, shopId)
|
||||||
|
.eq(TbCashierCart::getUseType, useType)
|
||||||
.and(query2 -> {
|
.and(query2 -> {
|
||||||
query2.or(query3 -> {
|
query2.or(query3 -> {
|
||||||
query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay())
|
query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay())
|
||||||
|
|
@ -622,12 +629,9 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
// if (vipUserId != null) {
|
if (tableId != null) {
|
||||||
// queryWrapper.eq(TbCashierCart::getUserId, vipUserId);
|
queryWrapper.eq(TbCashierCart::getTableId, tableId);
|
||||||
// }else {
|
}
|
||||||
// queryWrapper.eq(TbCashierCart::getMasterId, masterId);
|
|
||||||
// queryWrapper.isNull(TbCashierCart::getUserId);
|
|
||||||
// }
|
|
||||||
|
|
||||||
com.baomidou.mybatisplus.extension.plugins.pagination.Page<TbCashierCart> cartPage = cashierCartMapper
|
com.baomidou.mybatisplus.extension.plugins.pagination.Page<TbCashierCart> cartPage = cashierCartMapper
|
||||||
.selectPage(new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page, size), queryWrapper);
|
.selectPage(new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page, size), queryWrapper);
|
||||||
|
|
@ -683,7 +687,6 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
@Override
|
@Override
|
||||||
public void pack(PackCartDTO packCartDTO) {
|
public void pack(PackCartDTO packCartDTO) {
|
||||||
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
||||||
.eq(TbCashierCart::getTableId, packCartDTO.getTableId())
|
|
||||||
.eq(TbCashierCart::getShopId, packCartDTO.getShopId())
|
.eq(TbCashierCart::getShopId, packCartDTO.getShopId())
|
||||||
.in(TbCashierCart::getStatus, "create", "refund")
|
.in(TbCashierCart::getStatus, "create", "refund")
|
||||||
.and(query2 -> {
|
.and(query2 -> {
|
||||||
|
|
@ -697,11 +700,9 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
// if (packCartDTO.getVipUserId() != null) {
|
if (StrUtil.isNotBlank(packCartDTO.getTableId())) {
|
||||||
// queryWrapper.eq(TbCashierCart::getUserId, packCartDTO.getVipUserId());
|
queryWrapper.eq(TbCashierCart::getTableId, packCartDTO.getTableId());
|
||||||
// } else {
|
}
|
||||||
// queryWrapper.isNull(TbCashierCart::getUserId);
|
|
||||||
// }
|
|
||||||
|
|
||||||
List<TbCashierCart> tbCashierCarts = cashierCartMapper.selectList(queryWrapper);
|
List<TbCashierCart> tbCashierCarts = cashierCartMapper.selectList(queryWrapper);
|
||||||
tbCashierCarts.forEach(item -> {
|
tbCashierCarts.forEach(item -> {
|
||||||
|
|
@ -925,7 +926,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
private final StringRedisTemplate redisTemplate;
|
private final StringRedisTemplate redisTemplate;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JSONObject getMasterId(Integer shopId, Long tableId, Integer vipUserId) {
|
public JSONObject getMasterId(Integer shopId, Long tableId, Integer vipUserId, String useType) {
|
||||||
String account = tokenProvider.getSubject();
|
String account = tokenProvider.getSubject();
|
||||||
if (account == null) {
|
if (account == null) {
|
||||||
throw new BadRequestException("token解析失败");
|
throw new BadRequestException("token解析失败");
|
||||||
|
|
@ -934,7 +935,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
String day = DateUtils.getDay();
|
String day = DateUtils.getDay();
|
||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
// 当前台桌码
|
// 当前台桌码
|
||||||
String key = "SHOP:CODE:USER:pc" + ":" + shopId + ":" + day + ":" + tableId;
|
String key = "SHOP:CODE:USER:pc" + ":" + shopId + ":" + day + ":" + tableId + useType;
|
||||||
String userCode = redisTemplate.opsForValue().get(key);
|
String userCode = redisTemplate.opsForValue().get(key);
|
||||||
|
|
||||||
if (StringUtils.isEmpty(userCode) || "null".equals(userCode) || "#null".equals(userCode)) {
|
if (StringUtils.isEmpty(userCode) || "null".equals(userCode) || "#null".equals(userCode)) {
|
||||||
|
|
@ -965,21 +966,24 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
@Override
|
@Override
|
||||||
public TbOrderInfo createOrder(CreateOrderDTO createOrderDTO, boolean addMaterId, boolean isPrint) {
|
public TbOrderInfo createOrder(CreateOrderDTO createOrderDTO, boolean addMaterId, boolean isPrint) {
|
||||||
return Utils.runFunAndCheckKey(() -> {
|
return Utils.runFunAndCheckKey(() -> {
|
||||||
TbShopTable tbShopTable = mpShopTableMapper.selectOne(new LambdaQueryWrapper<TbShopTable>()
|
TbShopTable tbShopTable = null;
|
||||||
.eq(TbShopTable::getQrcode, createOrderDTO.getTableId())
|
boolean tableFlag = StrUtil.isNotBlank(createOrderDTO.getTableId());
|
||||||
.in(TbShopTable::getStatus, "idle", "using"));
|
if (tableFlag) {
|
||||||
|
tbShopTable = mpShopTableMapper.selectOne(new LambdaQueryWrapper<TbShopTable>()
|
||||||
|
.eq(TbShopTable::getQrcode, createOrderDTO.getTableId())
|
||||||
|
.in(TbShopTable::getStatus, "idle", "using"));
|
||||||
|
|
||||||
if (tbShopTable == null) {
|
if (tbShopTable == null) {
|
||||||
throw new BadRequestException("台桌未开台或不存在");
|
throw new BadRequestException("台桌未开台或不存在");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 传递orderId直接取否则取当前缓存id
|
// 传递orderId直接取否则取当前缓存id
|
||||||
String currentOrderKey = RedisConstant.getCurrentOrderKey(createOrderDTO.getTableId(),
|
String currentOrderKey = RedisConstant.getCurrentOrderKey(createOrderDTO.getTableId(),
|
||||||
createOrderDTO.getShopId().toString());
|
createOrderDTO.getShopId().toString());
|
||||||
String orderIdValue = redisTemplate.opsForValue().get(currentOrderKey);
|
String orderIdValue = redisTemplate.opsForValue().get(currentOrderKey);
|
||||||
Integer orderId = orderIdValue == null ? null : Integer.parseInt(orderIdValue);
|
Integer orderId = orderIdValue == null ? null : Integer.parseInt(orderIdValue);
|
||||||
orderId = createOrderDTO.getOrderId() != null ? createOrderDTO.getOrderId() : orderId;
|
orderId = tableFlag ? createOrderDTO.getOrderId() != null ? createOrderDTO.getOrderId() : orderId : null;
|
||||||
|
|
||||||
// 查询订单
|
// 查询订单
|
||||||
TbOrderInfo orderInfo = null;
|
TbOrderInfo orderInfo = null;
|
||||||
|
|
@ -994,8 +998,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
String day = DateUtils.getDay();
|
String day = DateUtils.getDay();
|
||||||
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
||||||
.eq(TbCashierCart::getShopId, createOrderDTO.getShopId())
|
.eq(TbCashierCart::getShopId, createOrderDTO.getShopId())
|
||||||
.eq(TbCashierCart::getTableId, createOrderDTO.getTableId())
|
.in(TbCashierCart::getStatus, "create")
|
||||||
.in(TbCashierCart::getStatus, "create", "refund")
|
.eq(TbCashierCart::getUseType, createOrderDTO.getUseType())
|
||||||
.and(query2 -> {
|
.and(query2 -> {
|
||||||
query2.or(query3 -> {
|
query2.or(query3 -> {
|
||||||
query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay())
|
query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay())
|
||||||
|
|
@ -1007,6 +1011,10 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (StrUtil.isNotBlank(createOrderDTO.getTableId())) {
|
||||||
|
queryWrapper.eq(TbCashierCart::getTableId, createOrderDTO.getTableId());
|
||||||
|
}
|
||||||
|
|
||||||
List<TbCashierCart> cashierCarts = cashierCartMapper
|
List<TbCashierCart> cashierCarts = cashierCartMapper
|
||||||
.selectList(queryWrapper);
|
.selectList(queryWrapper);
|
||||||
if (cashierCarts.isEmpty()) {
|
if (cashierCarts.isEmpty()) {
|
||||||
|
|
@ -1018,13 +1026,13 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
BigDecimal feeAmount = BigDecimal.ZERO;
|
BigDecimal feeAmount = BigDecimal.ZERO;
|
||||||
BigDecimal saleAmount = BigDecimal.ZERO;
|
BigDecimal saleAmount = BigDecimal.ZERO;
|
||||||
// 当前下单次数
|
// 当前下单次数
|
||||||
int placeNum = getCurrentPlaceNum(createOrderDTO.getTableId(), createOrderDTO.getShopId().toString());
|
int placeNum = StrUtil.isNotBlank(createOrderDTO.getTableId()) ? getCurrentPlaceNum(createOrderDTO.getTableId(), createOrderDTO.getShopId().toString()) : 1;
|
||||||
List<TbOrderDetail> orderDetails = new ArrayList<>();
|
List<TbOrderDetail> orderDetails = new ArrayList<>();
|
||||||
|
|
||||||
Integer mealNum = null;
|
Integer mealNum = null;
|
||||||
|
|
||||||
boolean unAdd = cashierCarts.stream().noneMatch(item -> item.getPlaceNum() == null);
|
boolean unAdd = cashierCarts.stream().noneMatch(item -> item.getPlaceNum() == null);
|
||||||
if (addMaterId && unAdd) {
|
if (addMaterId && unAdd && !OrderUseTypeEnum.TAKEOUT.getValue().equals(createOrderDTO.getUseType())) {
|
||||||
throw new BadRequestException("此次未添加新商品,清先添加商品");
|
throw new BadRequestException("此次未添加新商品,清先添加商品");
|
||||||
}
|
}
|
||||||
for (TbCashierCart cashierCart : cashierCarts) {
|
for (TbCashierCart cashierCart : cashierCarts) {
|
||||||
|
|
@ -1056,6 +1064,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
orderDetail.setShopId(Integer.valueOf(cashierCart.getShopId()));
|
orderDetail.setShopId(Integer.valueOf(cashierCart.getShopId()));
|
||||||
orderDetail.setPackAmount(cashierCart.getPackFee());
|
orderDetail.setPackAmount(cashierCart.getPackFee());
|
||||||
orderDetail.setStatus("unpaid");
|
orderDetail.setStatus("unpaid");
|
||||||
|
orderDetail.setUseType(createOrderDTO.getUseType());
|
||||||
orderDetail.setProductImg(cashierCart.getCoverImg());
|
orderDetail.setProductImg(cashierCart.getCoverImg());
|
||||||
orderDetail.setCartId(cashierCart.getId());
|
orderDetail.setCartId(cashierCart.getId());
|
||||||
orderDetails.add(orderDetail);
|
orderDetails.add(orderDetail);
|
||||||
|
|
@ -1066,7 +1075,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
orderDetail.setPlaceNum(placeNum);
|
orderDetail.setPlaceNum(placeNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mealNum == null) {
|
if ((OrderUseTypeEnum.DINE_IN_BEFORE.getValue().equals(createOrderDTO.getUseType()) || OrderUseTypeEnum.DINE_IN_AFTER.getValue().equals(createOrderDTO.getUseType()))
|
||||||
|
&& mealNum == null) {
|
||||||
throw new BadRequestException("请选择用餐人数");
|
throw new BadRequestException("请选择用餐人数");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1087,7 +1097,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
orderInfo.setProductAmount(saleAmount);
|
orderInfo.setProductAmount(saleAmount);
|
||||||
orderInfo.setTradeDay(DateUtils.getDay());
|
orderInfo.setTradeDay(DateUtils.getDay());
|
||||||
orderInfo.setUseType(createOrderDTO.isPostPay() ? "postPay" : "afterPay");
|
orderInfo.setUseType(createOrderDTO.isPostPay() ? "postPay" : "afterPay");
|
||||||
orderInfo.setUserId(createOrderDTO.getVipUserId() == null ? null : String.valueOf(createOrderDTO.getVipUserId()));
|
orderInfo.setUseType(createOrderDTO.getUseType());
|
||||||
orderInfo.setCreatedAt(DateUtil.current());
|
orderInfo.setCreatedAt(DateUtil.current());
|
||||||
if (!unAdd) {
|
if (!unAdd) {
|
||||||
orderInfo.setPlaceNum(placeNum);
|
orderInfo.setPlaceNum(placeNum);
|
||||||
|
|
@ -1115,10 +1125,10 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
orderInfo.setMasterId(createOrderDTO.getMasterId());
|
orderInfo.setMasterId(createOrderDTO.getMasterId());
|
||||||
orderInfo.setOutNumber(createOrderDTO.getMasterId());
|
orderInfo.setOutNumber(createOrderDTO.getMasterId());
|
||||||
orderInfo.setRemark(createOrderDTO.getNote());
|
orderInfo.setRemark(createOrderDTO.getNote());
|
||||||
orderInfo.setUserId(createOrderDTO.getVipUserId() == null ? null : String.valueOf(createOrderDTO.getVipUserId()));
|
|
||||||
orderInfo.setCreatedAt(DateUtil.current());
|
orderInfo.setCreatedAt(DateUtil.current());
|
||||||
orderInfo.setTableName(tbShopTable.getName());
|
orderInfo.setTableName(tbShopTable != null ? tbShopTable.getName() : null);
|
||||||
orderInfo.setPlaceNum(placeNum);
|
orderInfo.setPlaceNum(placeNum);
|
||||||
|
orderInfo.setUseType(createOrderDTO.getUseType());
|
||||||
TbMerchantAccount merchantAccount = merchantAccountMapper.selectOne(new LambdaQueryWrapper<TbMerchantAccount>()
|
TbMerchantAccount merchantAccount = merchantAccountMapper.selectOne(new LambdaQueryWrapper<TbMerchantAccount>()
|
||||||
.eq(TbMerchantAccount::getShopId, createOrderDTO.getShopId())
|
.eq(TbMerchantAccount::getShopId, createOrderDTO.getShopId())
|
||||||
.eq(TbMerchantAccount::getStatus, 1));
|
.eq(TbMerchantAccount::getStatus, 1));
|
||||||
|
|
@ -1128,7 +1138,10 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
orderInfo.setMerchantId(merchantAccount.getId().toString());
|
orderInfo.setMerchantId(merchantAccount.getId().toString());
|
||||||
orderInfoMapper.insert(orderInfo);
|
orderInfoMapper.insert(orderInfo);
|
||||||
|
|
||||||
redisTemplate.opsForValue().set(currentOrderKey, orderInfo.getId().toString());
|
// 台桌下单才保存订单信息
|
||||||
|
if (tableFlag) {
|
||||||
|
redisTemplate.opsForValue().set(currentOrderKey, orderInfo.getId().toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1166,8 +1179,6 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
// 后付费,不增加当前台桌取餐号
|
// 后付费,不增加当前台桌取餐号
|
||||||
if (createOrderDTO.isPostPay()) {
|
if (createOrderDTO.isPostPay()) {
|
||||||
addGlobalCode(day, "pc", String.valueOf(createOrderDTO.getShopId()));
|
addGlobalCode(day, "pc", String.valueOf(createOrderDTO.getShopId()));
|
||||||
// String key = "SHOP:CODE:USER:pc" + ":" + createOrderDTO.getShopId() + ":" + day + ":" + orderInfo.getTableId();
|
|
||||||
// redisTemplate.delete(key);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!createOrderDTO.isPostPay() || (addMaterId && "pending".equals(orderInfo.getStatus()))) {
|
if (!createOrderDTO.isPostPay() || (addMaterId && "pending".equals(orderInfo.getStatus()))) {
|
||||||
|
|
@ -1225,6 +1236,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
}
|
}
|
||||||
|
|
||||||
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
||||||
|
.eq(TbCashierCart::getUseType, pendingDTO.getUseType())
|
||||||
.eq(TbCashierCart::getShopId, pendingDTO.getShopId());
|
.eq(TbCashierCart::getShopId, pendingDTO.getShopId());
|
||||||
|
|
||||||
if (!pendingDTO.getIsPending()) {
|
if (!pendingDTO.getIsPending()) {
|
||||||
|
|
@ -1234,9 +1246,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
queryWrapper.eq(TbCashierCart::getOrderId, pendingDTO.getOrderId());
|
queryWrapper.eq(TbCashierCart::getOrderId, pendingDTO.getOrderId());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
queryWrapper.eq(TbCashierCart::getTableId, pendingDTO.getTableId())
|
queryWrapper
|
||||||
.eq(TbCashierCart::getStatus, "create")
|
.eq(TbCashierCart::getStatus, "create")
|
||||||
.eq(TbCashierCart::getTableId, pendingDTO.getTableId())
|
|
||||||
.and(query2 -> {
|
.and(query2 -> {
|
||||||
query2.or(query3 -> {
|
query2.or(query3 -> {
|
||||||
query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay())
|
query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay())
|
||||||
|
|
@ -1247,12 +1258,11 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
.eq(TbCashierCart::getMasterId, "");
|
.eq(TbCashierCart::getMasterId, "");
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
// if (pendingDTO.getVipUserId() != null) {
|
|
||||||
// queryWrapper.eq(TbCashierCart::getUserId, pendingDTO.getVipUserId());
|
if (StrUtil.isNotBlank(pendingDTO.getTableId())) {
|
||||||
// }else {
|
queryWrapper.eq(TbCashierCart::getTableId, pendingDTO.getTableId());
|
||||||
// queryWrapper.eq(TbCashierCart::getMasterId, pendingDTO.getMasterId())
|
}
|
||||||
// .isNull(TbCashierCart::getUserId);
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
List<TbCashierCart> cashierCarts = cashierCartMapper
|
List<TbCashierCart> cashierCarts = cashierCartMapper
|
||||||
|
|
@ -1273,22 +1283,22 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
createOrderDTO.setTableId(pendingDTO.getTableId());
|
createOrderDTO.setTableId(pendingDTO.getTableId());
|
||||||
createOrderDTO.setShopId(pendingDTO.getShopId());
|
createOrderDTO.setShopId(pendingDTO.getShopId());
|
||||||
createOrderDTO.setMasterId(pendingDTO.getMasterId());
|
createOrderDTO.setMasterId(pendingDTO.getMasterId());
|
||||||
createOrderDTO.setVipUserId(pendingDTO.getVipUserId());
|
|
||||||
createOrderDTO.setNote(pendingDTO.getNote());
|
createOrderDTO.setNote(pendingDTO.getNote());
|
||||||
|
createOrderDTO.setUseType(pendingDTO.getUseType());
|
||||||
orderId = createOrder(createOrderDTO, true, false).getId();
|
orderId = createOrder(createOrderDTO, true, false).getId();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TbOrderDetail orderDetail = new TbOrderDetail();
|
TbOrderDetail orderDetail = new TbOrderDetail();
|
||||||
orderDetail.setStatus(pendingDTO.getIsPending() ? "pending" : "cancelled");
|
orderDetail.setStatus(pendingDTO.getIsPending() ? "pending" : "unpaid");
|
||||||
orderDetailMapper.update(orderDetail, new LambdaUpdateWrapper<TbOrderDetail>()
|
orderDetailMapper.update(orderDetail, new LambdaUpdateWrapper<TbOrderDetail>()
|
||||||
.eq(TbOrderDetail::getShopId, pendingDTO.getIsPending())
|
.eq(TbOrderDetail::getShopId, pendingDTO.getShopId())
|
||||||
.eq(TbOrderDetail::getOrderId, orderId));
|
.eq(TbOrderDetail::getOrderId, orderId));
|
||||||
|
|
||||||
TbOrderInfo orderInfo = new TbOrderInfo();
|
TbOrderInfo orderInfo = new TbOrderInfo();
|
||||||
orderInfo.setId(orderId);
|
orderInfo.setId(orderId);
|
||||||
orderInfo.setStatus(pendingDTO.getIsPending() ? "pending" : "cancelled");
|
orderInfo.setStatus(pendingDTO.getIsPending() ? "pending" : "unpaid");
|
||||||
orderInfoMapper.updateById(orderInfo);
|
orderInfoMapper.updateById(orderInfo);
|
||||||
|
|
||||||
TbCashierCart cashierCart = new TbCashierCart();
|
TbCashierCart cashierCart = new TbCashierCart();
|
||||||
|
|
@ -1299,31 +1309,36 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
|
|
||||||
|
|
||||||
// 后付款订单,修改台桌状态并打票
|
// 后付款订单,修改台桌状态并打票
|
||||||
if (pendingDTO.getIsPending()) {
|
if (pendingDTO.getIsPending() && StrUtil.isNotBlank(pendingDTO.getTableId())) {
|
||||||
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||||
.eq(TbShopTable::getQrcode, cashierCart.getTableId())
|
.eq(TbShopTable::getQrcode, cashierCart.getTableId())
|
||||||
.set(TbShopTable::getStatus, TableStateEnum.PENDING.getState()));
|
.set(TbShopTable::getStatus, TableStateEnum.PENDING.getState()));
|
||||||
}
|
}
|
||||||
|
|
||||||
redisTemplate.delete(RedisConstant.getCurrentOrderKey(pendingDTO.getTableId(), pendingDTO.getShopId().toString()));
|
if (StrUtil.isNotBlank(pendingDTO.getTableId())) {
|
||||||
|
redisTemplate.delete(RedisConstant.getCurrentOrderKey(pendingDTO.getTableId(), pendingDTO.getShopId().toString()));
|
||||||
|
}
|
||||||
|
|
||||||
return orderInfoMapper.selectById(orderId);
|
return orderInfoMapper.selectById(orderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getCar(Integer shopId, String tableId) {
|
public Object getCar(Integer shopId, String tableId, String useType) {
|
||||||
ArrayList<Map<String, Object>> data = new ArrayList<>();
|
ArrayList<Map<String, Object>> data = new ArrayList<>();
|
||||||
|
|
||||||
List<PendingCountVO> pendingCountVOS = cashierCartMapper.countPending(shopId, tableId, DateUtils.getDay());
|
List<PendingCountVO> pendingCountVOS = cashierCartMapper.countPending(shopId, tableId, DateUtils.getDay(), useType);
|
||||||
List<TbCashierCart> tbCashierCarts = cashierCartMapper.selectList(new LambdaQueryWrapper<TbCashierCart>()
|
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
||||||
.eq(TbCashierCart::getShopId, shopId)
|
.eq(TbCashierCart::getShopId, shopId)
|
||||||
.eq(TbCashierCart::getTableId, tableId)
|
.eq(TbCashierCart::getUseType, useType)
|
||||||
.eq(TbCashierCart::getStatus, "refund"));
|
.eq(TbCashierCart::getStatus, "refund");
|
||||||
|
if (StrUtil.isNotBlank(tableId)) {
|
||||||
|
queryWrapper.eq(TbCashierCart::getTableId, tableId);
|
||||||
|
|
||||||
|
}
|
||||||
|
List<TbCashierCart> tbCashierCarts = cashierCartMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
ArrayList<Integer> skuIds = new ArrayList<>();
|
ArrayList<Integer> skuIds = new ArrayList<>();
|
||||||
tbCashierCarts.forEach(item -> {
|
tbCashierCarts.forEach(item -> skuIds.add(Integer.valueOf(item.getSkuId())));
|
||||||
skuIds.add(Integer.valueOf(item.getSkuId()));
|
|
||||||
});
|
|
||||||
|
|
||||||
List<TbProductSku> skuList = productSkuRepository.findAllById(skuIds);
|
List<TbProductSku> skuList = productSkuRepository.findAllById(skuIds);
|
||||||
|
|
||||||
|
|
@ -1530,7 +1545,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object choseTable(ChoseTableDTO choseTableDTO) {
|
public Object choseTable(ChoseTableDTO choseTableDTO) {
|
||||||
String masterId = getMasterId(choseTableDTO.getShopId(), Long.valueOf(choseTableDTO.getNewTableId()), null).getString("masterId");
|
String masterId = getMasterId(choseTableDTO.getShopId(), Long.valueOf(choseTableDTO.getNewTableId()), null, "").getString("masterId");
|
||||||
String currentOrderId = choseTableDTO.getOrderId() == null ? getCurrentOrderId(choseTableDTO.getOldTableId(),
|
String currentOrderId = choseTableDTO.getOrderId() == null ? getCurrentOrderId(choseTableDTO.getOldTableId(),
|
||||||
choseTableDTO.getShopId().toString()) : choseTableDTO.getOrderId().toString();
|
choseTableDTO.getShopId().toString()) : choseTableDTO.getOrderId().toString();
|
||||||
|
|
||||||
|
|
@ -1598,6 +1613,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||||
.eq(TbCashierCart::getMasterId, choseCountDTO.getMasterId())
|
.eq(TbCashierCart::getMasterId, choseCountDTO.getMasterId())
|
||||||
.eq(TbCashierCart::getProductId, "-999")
|
.eq(TbCashierCart::getProductId, "-999")
|
||||||
.eq(TbCashierCart::getSkuId, "-999")
|
.eq(TbCashierCart::getSkuId, "-999")
|
||||||
|
.eq(TbCashierCart::getUseType, choseCountDTO.getUseType())
|
||||||
.eq(TbCashierCart::getTradeDay, cn.ysk.cashier.utils.DateUtils.getDay())
|
.eq(TbCashierCart::getTradeDay, cn.ysk.cashier.utils.DateUtils.getDay())
|
||||||
.eq(TbCashierCart::getTableId, choseCountDTO.getTableId());
|
.eq(TbCashierCart::getTableId, choseCountDTO.getTableId());
|
||||||
TbCashierCart tbCashierCart = cashierCartMapper.selectOne(query);
|
TbCashierCart tbCashierCart = cashierCartMapper.selectOne(query);
|
||||||
|
|
|
||||||
|
|
@ -100,11 +100,11 @@ public interface TbShopTableService {
|
||||||
|
|
||||||
void removeCart(RemoveCartDTO removeCartDTO);
|
void removeCart(RemoveCartDTO removeCartDTO);
|
||||||
|
|
||||||
void returnCart(RemoveCartDTO removeCartDTO);
|
void returnCart(ReturnOrderDTO removeCartDTO);
|
||||||
|
|
||||||
void clearCart(ClearCartDTO clearCartDTO);
|
void clearCart(ClearCartDTO clearCartDTO);
|
||||||
|
|
||||||
Map<String, Object> getCart(Long tableId, Integer page, Integer size, Integer shopId, Integer vipUserId, String masterId);
|
Map<String, Object> getCart(Long tableId, Integer page, Integer size, Integer shopId, String masterId, String useType);
|
||||||
|
|
||||||
TbCashierCart updateCart(UpdateCartDTO updateCartDTO);
|
TbCashierCart updateCart(UpdateCartDTO updateCartDTO);
|
||||||
|
|
||||||
|
|
@ -112,11 +112,11 @@ public interface TbShopTableService {
|
||||||
|
|
||||||
Object createOrder(CreateOrderDTO createOrderDTO, boolean addMasterId, boolean isPrint);
|
Object createOrder(CreateOrderDTO createOrderDTO, boolean addMasterId, boolean isPrint);
|
||||||
|
|
||||||
JSONObject getMasterId(Integer shopId, Long tableId, Integer vipUserId);
|
JSONObject getMasterId(Integer shopId, Long tableId, Integer vipUserId, String useType);
|
||||||
|
|
||||||
Object pending(PendingDTO pendingDTO);
|
Object pending(PendingDTO pendingDTO);
|
||||||
|
|
||||||
Object getCar(Integer shopId, String tableId);
|
Object getCar(Integer shopId, String tableId, String useType);
|
||||||
|
|
||||||
Object getPayType(Integer shopId);
|
Object getPayType(Integer shopId);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
|
<mapper namespace="cn.ysk.cashier.mybatis.mapper.TbCashierCartMapper">
|
||||||
|
<select id="countPending" resultType="cn.ysk.cashier.vo.PendingCountVO">
|
||||||
|
select
|
||||||
|
a.id orderId,b.pending_at pendingAt, sum(b.total_amount) totalAmount,
|
||||||
|
count(b.id) totalCount, sum(b.total_number) totalNumber, a.remark
|
||||||
|
from tb_order_info a
|
||||||
|
JOIN tb_cashier_cart b on a.id=b.order_id
|
||||||
|
where a.shop_id=#{shopId} and a.`status`='pending'
|
||||||
|
and a.trade_day=#{day} and a.use_type=#{useType}
|
||||||
|
<if test="tableId != null and tableId != ''">
|
||||||
|
and a.table_id=#{tableId}
|
||||||
|
</if>
|
||||||
|
GROUP BY a.id ORDER BY a.id desc
|
||||||
|
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
Loading…
Reference in New Issue