1.代客下单 退单接口 选择台桌 选择人数
This commit is contained in:
@@ -19,4 +19,9 @@ public interface RabbitConstants {
|
|||||||
// 售出记录
|
// 售出记录
|
||||||
String EXCHANGE_STOCK_RECORD = "exchange.stock.record";
|
String EXCHANGE_STOCK_RECORD = "exchange.stock.record";
|
||||||
String ROUTING_STOCK_RECORD_SALE = "routing.stock.record.sale";
|
String ROUTING_STOCK_RECORD_SALE = "routing.stock.record.sale";
|
||||||
|
|
||||||
|
// 菜品打印
|
||||||
|
String EXCHANGE_PRINT = "exchange.print";
|
||||||
|
String ROUTING_KEY_PRINT_DISHES = "routing.dishes.print";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,6 +86,15 @@ public class TbPlaceController {
|
|||||||
tbShopTableService.removeCart(removeCartDTO);
|
tbShopTableService.removeCart(removeCartDTO);
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@AnonymousAccess
|
||||||
|
@PutMapping("/returnOrder")
|
||||||
|
@Log("代客下单 退单")
|
||||||
|
@ApiOperation("代客下单 清空购物车 /shop/table")
|
||||||
|
public ResponseEntity<Object> returnOrder(@Validated @RequestBody RemoveCartDTO removeCartDTO) {
|
||||||
|
tbShopTableService.returnCart(removeCartDTO);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
@AnonymousAccess
|
@AnonymousAccess
|
||||||
|
|
||||||
@DeleteMapping("/clearCart")
|
@DeleteMapping("/clearCart")
|
||||||
@@ -192,6 +201,31 @@ public class TbPlaceController {
|
|||||||
return ResponseEntity.ok(tbShopTableService.pay(payDTO));
|
return ResponseEntity.ok(tbShopTableService.pay(payDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@AnonymousAccess
|
||||||
|
|
||||||
|
@PutMapping("/choseTable")
|
||||||
|
@Log("代客下单 选择台桌")
|
||||||
|
@ApiOperation("代客下单 选择台桌 /shop/table")
|
||||||
|
public ResponseEntity<Object> choseTable(
|
||||||
|
@Validated @RequestBody ChoseTableDTO choseTableDTO
|
||||||
|
) {
|
||||||
|
|
||||||
|
return ResponseEntity.ok(tbShopTableService.choseTable(choseTableDTO));
|
||||||
|
}
|
||||||
|
@AnonymousAccess
|
||||||
|
|
||||||
|
@PutMapping("/choseCount")
|
||||||
|
@Log("代客下单 选择用餐人数")
|
||||||
|
@ApiOperation("代客下单 选择台桌 /shop/table")
|
||||||
|
public ResponseEntity<Object> choseCount(
|
||||||
|
@Validated @RequestBody ChoseCountDTO choseCountDTO
|
||||||
|
) {
|
||||||
|
|
||||||
|
return ResponseEntity.ok(tbShopTableService.choseCount(choseCountDTO));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@AnonymousAccess
|
@AnonymousAccess
|
||||||
@PutMapping("/updateVip")
|
@PutMapping("/updateVip")
|
||||||
@Log("代客下单 查询购物车")
|
@Log("代客下单 查询购物车")
|
||||||
|
|||||||
@@ -20,9 +20,10 @@ public class AddCartDTO {
|
|||||||
@NotEmpty
|
@NotEmpty
|
||||||
private String tableId;
|
private String tableId;
|
||||||
@NotNull
|
@NotNull
|
||||||
@Min(0)
|
@Min(1)
|
||||||
private Integer num;
|
private Integer num;
|
||||||
private boolean isPack;
|
private boolean isPack;
|
||||||
private boolean isGift;
|
private boolean isGift;
|
||||||
private Integer cartId;
|
private Integer cartId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package cn.ysk.cashier.dto.shoptable;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.Min;
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ChoseCountDTO {
|
||||||
|
@NotEmpty
|
||||||
|
private String masterId;
|
||||||
|
@NotNull
|
||||||
|
private Integer shopId;
|
||||||
|
@NotEmpty
|
||||||
|
private String tableId;
|
||||||
|
@NotNull
|
||||||
|
@Min(1)
|
||||||
|
private Integer num;
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package cn.ysk.cashier.dto.shoptable;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.Max;
|
||||||
|
import javax.validation.constraints.Min;
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ChoseTableDTO {
|
||||||
|
@NotNull
|
||||||
|
private Integer shopId;
|
||||||
|
private Integer orderId;
|
||||||
|
@NotNull
|
||||||
|
private String newTableId;
|
||||||
|
@NotEmpty
|
||||||
|
private String oldTableId;
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package cn.ysk.cashier.dto.shoptable;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ReturnOrderDTO {
|
||||||
|
@NotNull
|
||||||
|
private Integer cartId;
|
||||||
|
@NotNull
|
||||||
|
private Integer shopId;
|
||||||
|
@NotNull
|
||||||
|
private Long tableId;
|
||||||
|
}
|
||||||
@@ -155,6 +155,8 @@ public class TbCashierCart implements Serializable {
|
|||||||
private String uuid;
|
private String uuid;
|
||||||
@Column(name = "`sku_name`")
|
@Column(name = "`sku_name`")
|
||||||
private String skuName;
|
private String skuName;
|
||||||
|
@Column(name = "`place_num`")
|
||||||
|
private Integer placeNum;
|
||||||
|
|
||||||
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));
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package cn.ysk.cashier.pojo.order;
|
package cn.ysk.cashier.pojo.order;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@@ -101,12 +102,17 @@ public class TbOrderDetail implements Serializable {
|
|||||||
|
|
||||||
@Transient
|
@Transient
|
||||||
@ApiModelProperty(value = "退单数量")
|
@ApiModelProperty(value = "退单数量")
|
||||||
|
@TableField(exist = false)
|
||||||
private Integer refundNumber;
|
private Integer refundNumber;
|
||||||
|
|
||||||
@Column(name = "`is_vip`")
|
@Column(name = "`is_vip`")
|
||||||
@ApiModelProperty(value = "isVip")
|
@ApiModelProperty(value = "isVip")
|
||||||
private Integer isVip;
|
private Integer isVip;
|
||||||
|
|
||||||
|
@Column(name = "`place_num`")
|
||||||
|
@ApiModelProperty(value = "place_num")
|
||||||
|
private Integer placeNum;
|
||||||
|
|
||||||
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));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -228,6 +228,9 @@ public class TbOrderInfo implements Serializable {
|
|||||||
private String isUseCoupon;
|
private String isUseCoupon;
|
||||||
@Column(name = "`use_type`")
|
@Column(name = "`use_type`")
|
||||||
private String useType;
|
private String useType;
|
||||||
|
@Column(name = "`place_num`")
|
||||||
|
@ApiModelProperty(value = "place_num")
|
||||||
|
private Integer placeNum;
|
||||||
public void copy(TbOrderInfo source){
|
public void copy(TbOrderInfo source){
|
||||||
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,14 +7,15 @@ import cn.ysk.cashier.pojo.order.TbOrderInfo;
|
|||||||
import javax.validation.constraints.Max;
|
import javax.validation.constraints.Max;
|
||||||
import javax.validation.constraints.Min;
|
import javax.validation.constraints.Min;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
public interface TbPayService {
|
public interface TbPayService {
|
||||||
TbOrderInfo scanPay(PayDTO payDTO);
|
TbOrderInfo scanPay(Integer shopId, String code, Integer merchantId, Integer memberId, BigDecimal payMount, TbOrderInfo orderInfo);
|
||||||
|
|
||||||
TbOrderInfo vipPay(@NotNull Integer shopId, @NotNull Integer orderId, Double discount, Integer vipUserId);
|
void vipPay(BigDecimal payMount, Integer vipUserId);
|
||||||
|
|
||||||
TbOrderInfo cashPay(PayDTO payDTO);
|
TbOrderInfo cashPay(PayDTO payDTO);
|
||||||
|
|
||||||
TbOrderInfo memberAccountPay(String memberId, String shopId, String accountCode, Integer orderId, Double discount) throws Exception;
|
TbOrderInfo memberAccountPay(String memberId, String shopId, String accountCode, TbOrderInfo orderInfo, BigDecimal payMount) throws Exception;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,29 +106,20 @@ public class TbPayServiceImpl implements TbPayService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TbOrderInfo scanPay(PayDTO scanPayDTO) {
|
public TbOrderInfo scanPay(Integer shopId, String code, Integer merchantId, Integer memberId, BigDecimal payMount, TbOrderInfo orderInfo) {
|
||||||
if (StrUtil.isBlank(scanPayDTO.getCode())) {
|
if (StrUtil.isBlank(code)) {
|
||||||
throw new BadRequestException("无效码");
|
throw new BadRequestException("无效码");
|
||||||
}
|
}
|
||||||
|
|
||||||
TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaUpdateWrapper<TbOrderInfo>()
|
|
||||||
.in(TbOrderInfo::getStatus, "unpaid", "paying")
|
|
||||||
.eq(TbOrderInfo::getId, scanPayDTO.getOrderId())
|
|
||||||
.eq(TbOrderInfo::getShopId, scanPayDTO.getShopId()));
|
|
||||||
|
|
||||||
if (orderInfo == null) {
|
if (merchantId == null) {
|
||||||
throw new BadRequestException("订单不存在或已支付");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (ObjectUtil.isNull(orderInfo.getMerchantId()) || ObjectUtil.isEmpty(orderInfo.getMerchantId())) {
|
|
||||||
throw new BadRequestException("订单商户id为空");
|
throw new BadRequestException("订单商户id为空");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<TbCashierCart> cashierCarts = cashierCartMapper.selectList(new LambdaUpdateWrapper<TbCashierCart>()
|
List<TbCashierCart> cashierCarts = cashierCartMapper.selectList(new LambdaUpdateWrapper<TbCashierCart>()
|
||||||
.eq(TbCashierCart::getShopId, scanPayDTO.getShopId())
|
.eq(TbCashierCart::getShopId, shopId)
|
||||||
.eq(TbCashierCart::getOrderId, scanPayDTO.getOrderId()));
|
.eq(TbCashierCart::getOrderId, orderInfo.getId()));
|
||||||
if (cashierCarts.isEmpty()) {
|
if (cashierCarts.isEmpty()) {
|
||||||
throw new BadRequestException("购物车为空");
|
throw new BadRequestException("购物车为空");
|
||||||
}
|
}
|
||||||
@@ -138,10 +129,8 @@ public class TbPayServiceImpl implements TbPayService {
|
|||||||
body.append(cashierCart.getName());
|
body.append(cashierCart.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
BigDecimal payMount = orderInfo.getOrderAmount().multiply(BigDecimal.valueOf(scanPayDTO.getDiscount())).setScale(2, RoundingMode.HALF_UP);
|
|
||||||
|
|
||||||
|
TbMerchantThirdApply thirdApply = merchantThirdApplyRepository.getById(merchantId);
|
||||||
TbMerchantThirdApply thirdApply = merchantThirdApplyRepository.getById(Integer.valueOf(orderInfo.getMerchantId()));
|
|
||||||
if (ObjectUtil.isEmpty(thirdApply) || ObjectUtil.isNull(thirdApply)) {
|
if (ObjectUtil.isEmpty(thirdApply) || ObjectUtil.isNull(thirdApply)) {
|
||||||
throw new BadRequestException("三方支付信息不存在");
|
throw new BadRequestException("三方支付信息不存在");
|
||||||
}
|
}
|
||||||
@@ -149,7 +138,7 @@ public class TbPayServiceImpl implements TbPayService {
|
|||||||
String payType;
|
String payType;
|
||||||
String payName;
|
String payName;
|
||||||
String qpay;
|
String qpay;
|
||||||
String payTypeCode = scanPayDTO.getCode().substring(0, 2);// 判断收款码
|
String payTypeCode = code.substring(0, 2);// 判断收款码
|
||||||
|
|
||||||
if(Integer.parseInt(payTypeCode) >=25 && Integer.parseInt(payTypeCode) <= 30){
|
if(Integer.parseInt(payTypeCode) >=25 && Integer.parseInt(payTypeCode) <= 30){
|
||||||
payType = "aliPay";
|
payType = "aliPay";
|
||||||
@@ -168,32 +157,32 @@ public class TbPayServiceImpl implements TbPayService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
long count = shopPayTypeMapper.selectCount(new LambdaUpdateWrapper<TbShopPayType>()
|
long count = shopPayTypeMapper.selectCount(new LambdaUpdateWrapper<TbShopPayType>()
|
||||||
.eq(TbShopPayType::getShopId, scanPayDTO.getShopId())
|
.eq(TbShopPayType::getShopId, shopId)
|
||||||
.eq(TbShopPayType::getIsDisplay, 1)
|
.eq(TbShopPayType::getIsDisplay, 1)
|
||||||
.eq(TbShopPayType::getPayType, qpay));
|
.eq(TbShopPayType::getPayType, qpay));
|
||||||
if (count < 1) {
|
if (count < 1) {
|
||||||
throw new BadRequestException("未到找支付方式");
|
throw new BadRequestException("未到找支付方式");
|
||||||
}
|
}
|
||||||
|
|
||||||
TbOrderPayment payment = orderPaymentService.getById(scanPayDTO.getOrderId());
|
TbOrderPayment payment = orderPaymentService.getById(orderInfo.getId());
|
||||||
if (ObjectUtil.isEmpty(payment) || payment == null) {
|
if (ObjectUtil.isEmpty(payment) || payment == null) {
|
||||||
payment = new TbOrderPayment();
|
payment = new TbOrderPayment();
|
||||||
payment.setPayTypeId("ysk");
|
payment.setPayTypeId("ysk");
|
||||||
payment.setAmount(payMount.doubleValue());
|
payment.setAmount(payMount.doubleValue());
|
||||||
payment.setPaidAmount(orderInfo.getPayAmount().doubleValue());
|
payment.setPaidAmount(payMount.doubleValue());
|
||||||
payment.setHasRefundAmount((double) 0);
|
payment.setHasRefundAmount((double) 0);
|
||||||
payment.setPayName(payName);
|
payment.setPayName(payName);
|
||||||
payment.setPayType(payType);
|
payment.setPayType(payType);
|
||||||
payment.setReceived(payment.getAmount());
|
payment.setReceived(payment.getAmount());
|
||||||
payment.setChangeFee((double) 0);
|
payment.setChangeFee((double) 0);
|
||||||
payment.setMemberId(orderInfo.getMemberId());
|
payment.setMemberId(String.valueOf(memberId));
|
||||||
payment.setShopId(orderInfo.getShopId());
|
payment.setShopId(String.valueOf(shopId));
|
||||||
payment.setOrderId(orderInfo.getId().toString());
|
payment.setOrderId(String.valueOf(orderInfo.getId()));
|
||||||
payment.setCreatedAt(System.currentTimeMillis());
|
payment.setCreatedAt(System.currentTimeMillis());
|
||||||
payment.setAuthCode(scanPayDTO.getCode());
|
payment.setAuthCode(code);
|
||||||
orderPaymentService.save(payment);
|
orderPaymentService.save(payment);
|
||||||
} else {
|
} else {
|
||||||
payment.setAuthCode(scanPayDTO.getCode());
|
payment.setAuthCode(code);
|
||||||
payment.setUpdatedAt(System.currentTimeMillis());
|
payment.setUpdatedAt(System.currentTimeMillis());
|
||||||
orderPaymentService.updateById(payment);
|
orderPaymentService.updateById(payment);
|
||||||
}
|
}
|
||||||
@@ -202,15 +191,13 @@ public class TbPayServiceImpl implements TbPayService {
|
|||||||
orderInfo.setPayAmount(payMount);
|
orderInfo.setPayAmount(payMount);
|
||||||
orderInfo.setPayType(qpay);
|
orderInfo.setPayType(qpay);
|
||||||
orderInfo.setUpdatedAt(System.currentTimeMillis());
|
orderInfo.setUpdatedAt(System.currentTimeMillis());
|
||||||
orderInfoMapper.update(orderInfo, new LambdaUpdateWrapper<TbOrderInfo>()
|
|
||||||
.eq(TbOrderInfo::getId, scanPayDTO.getOrderId()));
|
|
||||||
|
|
||||||
if ("ysk".equals(thirdPayType)) {
|
if ("ysk".equals(thirdPayType)) {
|
||||||
|
|
||||||
ScanPayReq scanPayReq = new ScanPayReq();
|
ScanPayReq scanPayReq = new ScanPayReq();
|
||||||
scanPayReq.setAppId(thirdApply.getAppId());
|
scanPayReq.setAppId(thirdApply.getAppId());
|
||||||
scanPayReq.setTimestamp(System.currentTimeMillis());
|
scanPayReq.setTimestamp(System.currentTimeMillis());
|
||||||
scanPayReq.setAuthCode(scanPayDTO.getCode());
|
scanPayReq.setAuthCode(code);
|
||||||
scanPayReq.setNotifyUrl(backUrl);
|
scanPayReq.setNotifyUrl(backUrl);
|
||||||
scanPayReq.setConsumeFee(BigDecimal.valueOf(payment.getAmount()).setScale(2, RoundingMode.DOWN).toPlainString());
|
scanPayReq.setConsumeFee(BigDecimal.valueOf(payment.getAmount()).setScale(2, RoundingMode.DOWN).toPlainString());
|
||||||
|
|
||||||
@@ -231,20 +218,20 @@ public class TbPayServiceImpl implements TbPayService {
|
|||||||
orderInfo.setStatus("closed");
|
orderInfo.setStatus("closed");
|
||||||
orderInfo.setPayOrderNo(object.getJSONObject("data").get("orderNumber").toString());
|
orderInfo.setPayOrderNo(object.getJSONObject("data").get("orderNumber").toString());
|
||||||
orderInfoMapper.update(orderInfo, new LambdaQueryWrapper<TbOrderInfo>()
|
orderInfoMapper.update(orderInfo, new LambdaQueryWrapper<TbOrderInfo>()
|
||||||
.eq(TbOrderInfo::getId, scanPayDTO.getOrderId()));
|
.eq(TbOrderInfo::getId, orderInfo.getId()));
|
||||||
|
|
||||||
//更新购物车状态
|
//更新购物车状态
|
||||||
TbCashierCart cashierCart = new TbCashierCart();
|
TbCashierCart cashierCart = new TbCashierCart();
|
||||||
cashierCart.setStatus("final");
|
cashierCart.setStatus("final");
|
||||||
int cartCount = cashierCartMapper.update(cashierCart, new LambdaQueryWrapper<TbCashierCart>()
|
int cartCount = cashierCartMapper.update(cashierCart, new LambdaQueryWrapper<TbCashierCart>()
|
||||||
.eq(TbCashierCart::getOrderId, scanPayDTO.getOrderId()));
|
.eq(TbCashierCart::getOrderId, orderInfo.getId()));
|
||||||
log.info("更新购物车:{}", cartCount);
|
log.info("更新购物车:{}", cartCount);
|
||||||
|
|
||||||
//更新子单状态
|
//更新子单状态
|
||||||
TbOrderDetail orderDetail = new TbOrderDetail();
|
TbOrderDetail orderDetail = new TbOrderDetail();
|
||||||
orderDetail.setStatus("closed");
|
orderDetail.setStatus("closed");
|
||||||
orderDetailMapper.update(orderDetail, new LambdaQueryWrapper<TbOrderDetail>()
|
orderDetailMapper.update(orderDetail, new LambdaQueryWrapper<TbOrderDetail>()
|
||||||
.eq(TbOrderDetail::getOrderId, scanPayDTO.getOrderId()));
|
.eq(TbOrderDetail::getOrderId, orderInfo.getId()));
|
||||||
|
|
||||||
|
|
||||||
return orderInfo;
|
return orderInfo;
|
||||||
@@ -282,7 +269,7 @@ public class TbPayServiceImpl implements TbPayService {
|
|||||||
reqbody, reqbody,
|
reqbody, reqbody,
|
||||||
BigDecimal.valueOf(payment.getAmount()).setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(),
|
BigDecimal.valueOf(payment.getAmount()).setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(),
|
||||||
payType.equals("wechatPay") ? thirdApply.getSmallAppid() : null,
|
payType.equals("wechatPay") ? thirdApply.getSmallAppid() : null,
|
||||||
scanPayDTO.getCode(), DateUtils.getSsdfTimes(), thirdApply.getStoreId(), callBack, thirdApply.getAppToken());
|
code, DateUtils.getSsdfTimes(), thirdApply.getStoreId(), callBack, thirdApply.getAppToken());
|
||||||
log.info("响应信息, {}", publicResp);
|
log.info("响应信息, {}", publicResp);
|
||||||
if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) {
|
if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) {
|
||||||
if ("000000".equals(publicResp.getCode())) {
|
if ("000000".equals(publicResp.getCode())) {
|
||||||
@@ -331,41 +318,25 @@ public class TbPayServiceImpl implements TbPayService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TbOrderInfo vipPay(@NotNull Integer shopId, @NotNull Integer orderId, Double discount, Integer vipUserId) {
|
public void vipPay(BigDecimal payMount, Integer vipUserId) {
|
||||||
|
|
||||||
TbOrderInfo orderInfo = orderInfoMapper.selectById(orderId);
|
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(orderInfo)) {
|
|
||||||
throw new BadRequestException("订单不存在");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!"unpaid".equals(orderInfo.getStatus()) && !"pending".equals(orderInfo.getStatus())) {
|
|
||||||
throw new BadRequestException("订单非未支付状态");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vipUserId != null) {
|
|
||||||
orderInfo.setUserId(String.valueOf(vipUserId));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 扣减会员余额
|
// 扣减会员余额
|
||||||
TbShopUser shopUser = shopUserMapper.selectOne(new LambdaUpdateWrapper<TbShopUser>()
|
TbShopUser shopUser = shopUserMapper.selectOne(new LambdaUpdateWrapper<TbShopUser>()
|
||||||
.eq(TbShopUser::getStatus, 1)
|
.eq(TbShopUser::getStatus, 1)
|
||||||
.eq(TbShopUser::getId, orderInfo.getUserId()));
|
.eq(TbShopUser::getId, vipUserId));
|
||||||
|
|
||||||
if (shopUser == null) {
|
if (shopUser == null) {
|
||||||
throw new BadRequestException("用户不存在或已被禁用");
|
throw new BadRequestException("用户不存在或已被禁用");
|
||||||
}
|
}
|
||||||
|
|
||||||
BigDecimal finalAmount = orderInfo.getOrderAmount().multiply(BigDecimal.valueOf(discount)).setScale(2, RoundingMode.HALF_UP);
|
long flag = shopUserMapper.decrBalance(vipUserId, payMount);
|
||||||
long flag = shopUserMapper.decrBalance(Integer.valueOf(orderInfo.getUserId()), finalAmount);
|
|
||||||
if (flag < 1) {
|
if (flag < 1) {
|
||||||
throw new BadRequestException("余额不足或扣除余额失败");
|
throw new BadRequestException("余额不足或扣除余额失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
TbShopUserFlow userFlow = new TbShopUserFlow();
|
TbShopUserFlow userFlow = new TbShopUserFlow();
|
||||||
userFlow.setAmount(finalAmount);
|
userFlow.setAmount(payMount);
|
||||||
userFlow.setBalance(shopUser.getAmount().subtract(finalAmount));
|
userFlow.setBalance(shopUser.getAmount().subtract(payMount));
|
||||||
userFlow.setShopUserId(shopUser.getId());
|
userFlow.setShopUserId(shopUser.getId());
|
||||||
userFlow.setBizCode("vipCardCash");
|
userFlow.setBizCode("vipCardCash");
|
||||||
userFlow.setBizName("余额支付");
|
userFlow.setBizName("余额支付");
|
||||||
@@ -373,22 +344,6 @@ public class TbPayServiceImpl implements TbPayService {
|
|||||||
userFlow.setType("-");
|
userFlow.setType("-");
|
||||||
shopUserFlowMapper.insert(userFlow);
|
shopUserFlowMapper.insert(userFlow);
|
||||||
|
|
||||||
orderInfo.setPayAmount(finalAmount);
|
|
||||||
orderInfo.setPayType("cash");
|
|
||||||
orderInfo.setStatus("closed");
|
|
||||||
orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo()));
|
|
||||||
orderInfo.setDiscountRatio(BigDecimal.valueOf(discount));
|
|
||||||
orderInfo.setDiscountAmount(orderInfo.getAmount().subtract(finalAmount));
|
|
||||||
orderInfoMapper.updateById(orderInfo);
|
|
||||||
//更新购物车状态
|
|
||||||
int cartCount = cashierCartMapper.update(null, new LambdaUpdateWrapper<TbCashierCart>()
|
|
||||||
.eq(TbCashierCart::getOrderId, orderId)
|
|
||||||
.set(TbCashierCart::getStatus, "final"));
|
|
||||||
|
|
||||||
orderDetailMapper.update(null, new LambdaUpdateWrapper<TbOrderDetail>()
|
|
||||||
.eq(TbOrderDetail::getOrderId, orderId)
|
|
||||||
.set(TbOrderDetail::getStatus, "closed"));
|
|
||||||
return orderInfo;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -442,33 +397,11 @@ public class TbPayServiceImpl implements TbPayService {
|
|||||||
return orderInfo;
|
return orderInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TbOrderInfo memberAccountPay(String memberId, String shopId, String accountCode, Integer orderId, Double discount) {
|
public TbOrderInfo memberAccountPay(String memberId, String shopId, String accountCode, TbOrderInfo orderInfo, BigDecimal payMount) {
|
||||||
if (StrUtil.isBlank(accountCode)) {
|
if (StrUtil.isBlank(accountCode)) {
|
||||||
throw new BadRequestException("无效码");
|
throw new BadRequestException("无效码");
|
||||||
}
|
}
|
||||||
|
|
||||||
TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaUpdateWrapper<TbOrderInfo>()
|
|
||||||
.eq(TbOrderInfo::getId, orderId)
|
|
||||||
.eq(TbOrderInfo::getShopId, shopId));
|
|
||||||
|
|
||||||
if (orderInfo == null) {
|
|
||||||
throw new BadRequestException("订单不存在或已支付");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!"unpaid".equals(orderInfo.getStatus()) && !"pending".equals(orderInfo.getStatus())) {
|
|
||||||
throw new BadRequestException("此订单不处于未支付状态");
|
|
||||||
}
|
|
||||||
|
|
||||||
BigDecimal payMount = orderInfo.getOrderAmount().multiply(BigDecimal.valueOf(discount)).setScale(2, RoundingMode.HALF_UP);
|
|
||||||
|
|
||||||
long count = tbShopPayTypeMapper.selectCount(new LambdaQueryWrapper<TbShopPayType>()
|
|
||||||
.eq(TbShopPayType::getShopId, shopId)
|
|
||||||
.eq(TbShopPayType::getIsDisplay, 1)
|
|
||||||
.eq(TbShopPayType::getPayType, "deposit"));
|
|
||||||
if (count < 1) {
|
|
||||||
throw new BadRequestException("未知支付方式");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
TbShopUser user = null;
|
TbShopUser user = null;
|
||||||
|
|
||||||
@@ -520,22 +453,7 @@ public class TbPayServiceImpl implements TbPayService {
|
|||||||
orderInfo.setUserId(user.getUserId());
|
orderInfo.setUserId(user.getUserId());
|
||||||
orderInfo.setMemberId(user.getId().toString());
|
orderInfo.setMemberId(user.getId().toString());
|
||||||
orderInfo.setPayType("deposit");
|
orderInfo.setPayType("deposit");
|
||||||
orderInfo.setStatus("closed");
|
|
||||||
orderInfo.setPayOrderNo("deposit".concat(SnowFlakeUtil.generateOrderNo()));
|
orderInfo.setPayOrderNo("deposit".concat(SnowFlakeUtil.generateOrderNo()));
|
||||||
orderInfoMapper.updateById(orderInfo);
|
|
||||||
//更新购物车状态
|
|
||||||
int cartCount = cashierCartMapper.update(null, new LambdaUpdateWrapper<TbCashierCart>()
|
|
||||||
.eq(TbCashierCart::getId, orderId)
|
|
||||||
.set(TbCashierCart::getStatus, "final"));
|
|
||||||
|
|
||||||
|
|
||||||
orderDetailMapper.update(null, new LambdaUpdateWrapper<TbOrderDetail>()
|
|
||||||
.eq(TbOrderDetail::getOrderId, orderId)
|
|
||||||
.set(TbOrderDetail::getStatus, "closed"));
|
|
||||||
|
|
||||||
log.info("更新购物车:{}", cartCount);
|
|
||||||
|
|
||||||
|
|
||||||
return orderInfo;
|
return orderInfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package cn.ysk.cashier.service.impl.shopimpl;
|
|||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.thread.ThreadUtil;
|
import cn.hutool.core.thread.ThreadUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.ysk.cashier.config.security.security.TokenProvider;
|
import cn.ysk.cashier.config.security.security.TokenProvider;
|
||||||
import cn.ysk.cashier.cons.RedisConstant;
|
import cn.ysk.cashier.cons.RedisConstant;
|
||||||
@@ -27,7 +28,9 @@ 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;
|
||||||
import cn.ysk.cashier.mybatis.entity.TbShopOpenId;
|
import cn.ysk.cashier.mybatis.entity.TbShopOpenId;
|
||||||
|
import cn.ysk.cashier.mybatis.entity.TbShopUserFlow;
|
||||||
import cn.ysk.cashier.mybatis.mapper.*;
|
import cn.ysk.cashier.mybatis.mapper.*;
|
||||||
|
import cn.ysk.cashier.pojo.TbShopPayType;
|
||||||
import cn.ysk.cashier.pojo.order.TbCashierCart;
|
import cn.ysk.cashier.pojo.order.TbCashierCart;
|
||||||
import cn.ysk.cashier.pojo.order.TbOrderDetail;
|
import cn.ysk.cashier.pojo.order.TbOrderDetail;
|
||||||
import cn.ysk.cashier.pojo.order.TbOrderInfo;
|
import cn.ysk.cashier.pojo.order.TbOrderInfo;
|
||||||
@@ -66,6 +69,8 @@ import org.springframework.data.domain.Page;
|
|||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
|
import java.sql.Timestamp;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -105,6 +110,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
private final WxMsgUtils wxMsgUtils;
|
private final WxMsgUtils wxMsgUtils;
|
||||||
private final TbShopPayTypeRepository payTypeRepository;
|
private final TbShopPayTypeRepository payTypeRepository;
|
||||||
private final MpShopTableMapper mpShopTableMapper;
|
private final MpShopTableMapper mpShopTableMapper;
|
||||||
|
private final TbShopPayTypeMapper tbShopPayTypeMapper;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 桌码前缀
|
* 桌码前缀
|
||||||
@@ -322,10 +329,24 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
return shopTable;
|
return shopTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getCurrentPlaceNum(String tableId, String shopId) {
|
||||||
|
String currentOrderKey = RedisConstant.getCurrentOrderKey(tableId,
|
||||||
|
shopId);
|
||||||
|
if (StrUtil.isBlank(currentOrderKey)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaQueryWrapper<TbOrderInfo>()
|
||||||
|
.eq(TbOrderInfo::getUseType, "postPay")
|
||||||
|
.eq(TbOrderInfo::getId, currentOrderKey).select(TbOrderInfo::getPlaceNum));
|
||||||
|
return orderInfo == null ? 1 : orderInfo.getPlaceNum() + 1;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TbCashierCart addCartForUser(AddCartDTO addCartDTO) {
|
public TbCashierCart addCartForUser(AddCartDTO addCartDTO) {
|
||||||
checkTableIsOpen(addCartDTO.getTableId());
|
checkTableIsOpen(addCartDTO.getTableId());
|
||||||
|
|
||||||
|
int currentPlaceNum = getCurrentPlaceNum(addCartDTO.getShopId().toString(), addCartDTO.getTableId());
|
||||||
|
|
||||||
TbProductSku productSku = productMapper.selectSkuByIdAndShopId(addCartDTO.getShopId(), addCartDTO.getSkuId());
|
TbProductSku productSku = productMapper.selectSkuByIdAndShopId(addCartDTO.getShopId(), addCartDTO.getSkuId());
|
||||||
TbProduct product = productMapper.selectByIdAndShopId(addCartDTO.getShopId(), addCartDTO.getProductId());
|
TbProduct product = productMapper.selectByIdAndShopId(addCartDTO.getShopId(), addCartDTO.getProductId());
|
||||||
|
|
||||||
@@ -344,6 +365,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
.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())
|
.eq(TbCashierCart::getTableId, addCartDTO.getTableId())
|
||||||
|
.eq(TbCashierCart::getPlaceNum, currentPlaceNum)
|
||||||
.in(TbCashierCart::getStatus, "create", "refund")
|
.in(TbCashierCart::getStatus, "create", "refund")
|
||||||
// .and(q -> {
|
// .and(q -> {
|
||||||
// q.eq(TbCashierCart::getTradeDay, DateUtils.getDay())
|
// q.eq(TbCashierCart::getTradeDay, DateUtils.getDay())
|
||||||
@@ -391,6 +413,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
tbCashierCart.setSalePrice(productSku.getSalePrice());
|
tbCashierCart.setSalePrice(productSku.getSalePrice());
|
||||||
tbCashierCart.setTotalAmount(new BigDecimal(addCartDTO.getNum()).multiply(productSku.getSalePrice()));
|
tbCashierCart.setTotalAmount(new BigDecimal(addCartDTO.getNum()).multiply(productSku.getSalePrice()));
|
||||||
tbCashierCart.setSkuName(productSku.getSpecSnap());
|
tbCashierCart.setSkuName(productSku.getSpecSnap());
|
||||||
|
tbCashierCart.setPlaceNum(currentPlaceNum);
|
||||||
if (!addCartDTO.isPack()) {
|
if (!addCartDTO.isPack()) {
|
||||||
tbCashierCart.setPackFee(BigDecimal.ZERO);
|
tbCashierCart.setPackFee(BigDecimal.ZERO);
|
||||||
} else {
|
} else {
|
||||||
@@ -425,11 +448,6 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
tbCashierCart.setIsGift(String.valueOf(addCartDTO.isGift()));
|
tbCashierCart.setIsGift(String.valueOf(addCartDTO.isGift()));
|
||||||
tbCashierCart.setTotalNumber(addCartDTO.getNum());
|
tbCashierCart.setTotalNumber(addCartDTO.getNum());
|
||||||
tbCashierCart.setNumber(addCartDTO.getNum());
|
tbCashierCart.setNumber(addCartDTO.getNum());
|
||||||
// 数量0删除
|
|
||||||
if (tbCashierCart.getNumber() == 0) {
|
|
||||||
cashierCartRepository.deleteById(tbCashierCart.getId());
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
tbCashierCart.setUpdatedAt(DateUtil.current());
|
tbCashierCart.setUpdatedAt(DateUtil.current());
|
||||||
cashierCartRepository.save(tbCashierCart);
|
cashierCartRepository.save(tbCashierCart);
|
||||||
}
|
}
|
||||||
@@ -466,9 +484,11 @@ 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());
|
||||||
// 会员点单
|
// 会员点单
|
||||||
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::getPlaceNum, currentPlaceNum)
|
||||||
.eq(TbCashierCart::getId, removeCartDTO.getCartId()));
|
.eq(TbCashierCart::getId, removeCartDTO.getCartId()));
|
||||||
if (cashierCart == null) {
|
if (cashierCart == null) {
|
||||||
throw new BadRequestException("购物车商品不存在");
|
throw new BadRequestException("购物车商品不存在");
|
||||||
@@ -479,11 +499,9 @@ 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::getPlaceNum, currentPlaceNum)
|
||||||
.eq(TbOrderDetail::getOrderId, cashierCart.getOrderId()));
|
.eq(TbOrderDetail::getOrderId, cashierCart.getOrderId()));
|
||||||
}
|
}
|
||||||
cashierCartMapper.delete(new LambdaQueryWrapper<TbCashierCart>().eq(TbCashierCart::getShopId, removeCartDTO.getShopId())
|
|
||||||
.eq(TbCashierCart::getId, removeCartDTO.getCartId()));
|
|
||||||
|
|
||||||
|
|
||||||
// 清空购物车 出票
|
// 清空购物车 出票
|
||||||
long carCount = countCar(cashierCart.getTableId(), cashierCart.getShopId(), cashierCart.getMasterId());
|
long carCount = countCar(cashierCart.getTableId(), cashierCart.getShopId(), cashierCart.getMasterId());
|
||||||
@@ -497,13 +515,55 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void returnCart(RemoveCartDTO removeCartDTO) {
|
||||||
|
rabbitMsgUtils.printDishesReturnTicket(4450, 9313);
|
||||||
|
|
||||||
|
int currentPlaceNum = getCurrentPlaceNum(removeCartDTO.getTableId().toString(), removeCartDTO.getShopId().toString());
|
||||||
|
// 会员点单
|
||||||
|
TbCashierCart cashierCart = cashierCartMapper.selectOne(new LambdaQueryWrapper<TbCashierCart>()
|
||||||
|
.eq(TbCashierCart::getShopId, removeCartDTO.getShopId())
|
||||||
|
.in(TbCashierCart::getStatus, "create")
|
||||||
|
.eq(TbCashierCart::getId, removeCartDTO.getCartId()));
|
||||||
|
|
||||||
|
if (cashierCart == null) {
|
||||||
|
throw new BadRequestException("购物车商品不存在或已退单");
|
||||||
|
}
|
||||||
|
|
||||||
|
TbOrderDetail tbOrderDetail = orderDetailMapper.selectOne(new LambdaQueryWrapper<TbOrderDetail>()
|
||||||
|
.eq(TbOrderDetail::getShopId, removeCartDTO.getShopId())
|
||||||
|
.eq(TbOrderDetail::getPlaceNum, cashierCart.getPlaceNum())
|
||||||
|
.in(TbOrderDetail::getStatus, "unpaid")
|
||||||
|
.eq(TbOrderDetail::getOrderId, cashierCart.getOrderId()));
|
||||||
|
if (tbOrderDetail == null) {
|
||||||
|
throw new BadRequestException("购物车商品不存在或已退单");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cashierCart.getOrderId() == null) {
|
||||||
|
throw new BadRequestException("此商品还未下单,无需退单");
|
||||||
|
}
|
||||||
|
|
||||||
|
cashierCartMapper.update(null, new LambdaUpdateWrapper<TbCashierCart>()
|
||||||
|
.eq(TbCashierCart::getId, cashierCart.getId())
|
||||||
|
.set(TbCashierCart::getStatus, "return"));
|
||||||
|
|
||||||
|
orderDetailMapper.update(null, new LambdaUpdateWrapper<TbOrderDetail>()
|
||||||
|
.eq(TbOrderDetail::getId, tbOrderDetail.getId())
|
||||||
|
.set(TbOrderDetail::getUpdateTime, DateUtil.date())
|
||||||
|
.set(TbOrderDetail::getStatus, "return"));
|
||||||
|
|
||||||
|
rabbitMsgUtils.printDishesReturnTicket(tbOrderDetail.getOrderId(), tbOrderDetail.getOrderId());
|
||||||
|
}
|
||||||
|
|
||||||
@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 = redisTemplate.opsForValue().get(RedisConstant.getCurrentOrderKey(clearCartDTO.getTableId().toString(), clearCartDTO.getShopId()));
|
||||||
|
int currentPlaceNum = getCurrentPlaceNum(clearCartDTO.getTableId().toString(), clearCartDTO.getShopId());
|
||||||
|
|
||||||
cashierCartMapper.delete(new LambdaQueryWrapper<TbCashierCart>()
|
cashierCartMapper.delete(new LambdaQueryWrapper<TbCashierCart>()
|
||||||
.eq(TbCashierCart::getShopId, clearCartDTO.getShopId())
|
.eq(TbCashierCart::getShopId, clearCartDTO.getShopId())
|
||||||
.eq(TbCashierCart::getTableId, clearCartDTO.getTableId())
|
.eq(TbCashierCart::getTableId, clearCartDTO.getTableId())
|
||||||
|
.eq(TbCashierCart::getPlaceNum, currentPlaceNum)
|
||||||
.and(q -> {
|
.and(q -> {
|
||||||
q.eq(TbCashierCart::getMasterId, clearCartDTO.getMasterId())
|
q.eq(TbCashierCart::getMasterId, clearCartDTO.getMasterId())
|
||||||
.or()
|
.or()
|
||||||
@@ -518,10 +578,13 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
// tbShopTableRepository.deleteByTableIdAndShopId(clearCartDTO.getTableId(), clearCartDTO.getShopId());
|
// tbShopTableRepository.deleteByTableIdAndShopId(clearCartDTO.getTableId(), clearCartDTO.getShopId());
|
||||||
|
|
||||||
if (StrUtil.isNotBlank(orderId)) {
|
if (StrUtil.isNotBlank(orderId)) {
|
||||||
orderDetailMapper.delete(new LambdaQueryWrapper<TbOrderDetail>().eq(TbOrderDetail::getShopId, clearCartDTO.getShopId())
|
orderDetailMapper.delete(new LambdaQueryWrapper<TbOrderDetail>()
|
||||||
|
.eq(TbOrderDetail::getShopId, clearCartDTO.getShopId())
|
||||||
|
.eq(TbOrderDetail::getPlaceNum, currentPlaceNum)
|
||||||
.eq(TbOrderDetail::getOrderId, orderId));
|
.eq(TbOrderDetail::getOrderId, orderId));
|
||||||
rabbitMsgUtils.printTicket(orderId);
|
rabbitMsgUtils.printTicket(orderId);
|
||||||
}
|
}
|
||||||
@@ -541,7 +604,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
Integer size, Integer shopId, Integer vipUserId, String masterId) {
|
Integer size, Integer shopId, Integer vipUserId, String masterId) {
|
||||||
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
||||||
.eq(TbCashierCart::getTableId, tableId)
|
.eq(TbCashierCart::getTableId, tableId)
|
||||||
.in(TbCashierCart::getStatus, "create", "refund")
|
.in(TbCashierCart::getStatus, "create", "refund", "return")
|
||||||
.eq(TbCashierCart::getShopId, shopId)
|
.eq(TbCashierCart::getShopId, shopId)
|
||||||
.and(query2 -> {
|
.and(query2 -> {
|
||||||
query2.or(query3 -> {
|
query2.or(query3 -> {
|
||||||
@@ -835,7 +898,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
private final StringRedisTemplate redisTemplate;
|
private final StringRedisTemplate redisTemplate;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getMasterId(Integer shopId, Long tableId, Integer vipUserId) {
|
public JSONObject getMasterId(Integer shopId, Long tableId, Integer vipUserId) {
|
||||||
String account = tokenProvider.getSubject();
|
String account = tokenProvider.getSubject();
|
||||||
if (account == null) {
|
if (account == null) {
|
||||||
throw new BadRequestException("token解析失败");
|
throw new BadRequestException("token解析失败");
|
||||||
@@ -875,12 +938,32 @@ 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>()
|
||||||
|
.eq(TbShopTable::getQrcode, createOrderDTO.getTableId())
|
||||||
|
.in(TbShopTable::getStatus, "idle", "using"));
|
||||||
|
|
||||||
|
if (tbShopTable == null) {
|
||||||
|
throw new BadRequestException("台桌未开台或不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 传递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 = createOrderDTO.getOrderId() != null ? createOrderDTO.getOrderId() : orderId;
|
||||||
|
|
||||||
|
// 查询订单
|
||||||
|
TbOrderInfo orderInfo = null;
|
||||||
|
if (orderId != null) {
|
||||||
|
orderInfo = orderInfoMapper.selectById(orderId);
|
||||||
|
|
||||||
|
if (orderInfo == null || !"unpaid".equals(orderInfo.getStatus())) {
|
||||||
|
redisTemplate.delete(currentOrderKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
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())
|
||||||
@@ -896,33 +979,26 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
.isNull(TbCashierCart::getMasterId);
|
.isNull(TbCashierCart::getMasterId);
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
// if (createOrderDTO.getVipUserId() != null) {
|
|
||||||
// queryWrapper.eq(TbCashierCart::getUserId, createOrderDTO.getVipUserId());
|
|
||||||
// }else {
|
|
||||||
// queryWrapper.eq(TbCashierCart::getMasterId, createOrderDTO.getMasterId())
|
|
||||||
// .isNull(TbCashierCart::getUserId);
|
|
||||||
// }
|
|
||||||
List<TbCashierCart> cashierCarts = cashierCartMapper
|
List<TbCashierCart> cashierCarts = cashierCartMapper
|
||||||
.selectList(queryWrapper);
|
.selectList(queryWrapper);
|
||||||
if (cashierCarts.isEmpty()) {
|
if (cashierCarts.isEmpty()) {
|
||||||
throw new BadRequestException("购物车为空,请先添加商品");
|
throw new BadRequestException("购物车为空,请先添加商品");
|
||||||
}
|
}
|
||||||
|
|
||||||
TbShopTable tbShopTable = mpShopTableMapper.selectOne(new LambdaQueryWrapper<TbShopTable>()
|
|
||||||
.eq(TbShopTable::getQrcode, createOrderDTO.getTableId())
|
|
||||||
.in(TbShopTable::getStatus, "idle", "using"));
|
|
||||||
|
|
||||||
if (tbShopTable == null) {
|
|
||||||
throw new BadRequestException("台桌未开台或不存在");
|
|
||||||
}
|
|
||||||
|
|
||||||
BigDecimal totalAmount = BigDecimal.ZERO;
|
BigDecimal totalAmount = BigDecimal.ZERO;
|
||||||
BigDecimal packAMount = BigDecimal.ZERO;
|
BigDecimal packAMount = BigDecimal.ZERO;
|
||||||
BigDecimal feeAmount = BigDecimal.ZERO;
|
BigDecimal feeAmount = BigDecimal.ZERO;
|
||||||
BigDecimal saleAmount = BigDecimal.ZERO;
|
BigDecimal saleAmount = BigDecimal.ZERO;
|
||||||
|
// 当前下单次数
|
||||||
|
int placeNum = orderInfo == null ? 1 : orderInfo.getPlaceNum() + 1;
|
||||||
List<TbOrderDetail> orderDetails = new ArrayList<>();
|
List<TbOrderDetail> orderDetails = new ArrayList<>();
|
||||||
|
|
||||||
|
boolean mealCost = false;
|
||||||
for (TbCashierCart cashierCart : cashierCarts) {
|
for (TbCashierCart cashierCart : cashierCarts) {
|
||||||
|
if ("客位费".equals(cashierCart.getName())) {
|
||||||
|
mealCost = true;
|
||||||
|
}
|
||||||
totalAmount = totalAmount.add(cashierCart.getTotalAmount());
|
totalAmount = totalAmount.add(cashierCart.getTotalAmount());
|
||||||
packAMount = packAMount.add(cashierCart.getPackFee());
|
packAMount = packAMount.add(cashierCart.getPackFee());
|
||||||
feeAmount = cashierCart.getPackFee();
|
feeAmount = cashierCart.getPackFee();
|
||||||
@@ -950,15 +1026,11 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
orderId = cashierCart.getOrderId();
|
orderId = cashierCart.getOrderId();
|
||||||
}
|
}
|
||||||
orderDetail.setOrderId(orderId);
|
orderDetail.setOrderId(orderId);
|
||||||
|
orderDetail.setPlaceNum(placeNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
TbOrderInfo orderInfo = null;
|
if (!mealCost) {
|
||||||
if (orderId != null) {
|
throw new BadRequestException("请选择用餐人数");
|
||||||
orderInfo = orderInfoMapper.selectById(orderId);
|
|
||||||
|
|
||||||
if (orderInfo == null || !"unpaid".equals(orderInfo.getStatus())) {
|
|
||||||
redisTemplate.delete(currentOrderKey);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改订单信息
|
// 修改订单信息
|
||||||
@@ -1236,25 +1308,70 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
@Override
|
@Override
|
||||||
public Object pay(PayDTO payDTO) {
|
public Object pay(PayDTO payDTO) {
|
||||||
return Utils.runFunAndCheckKey(() -> {
|
return Utils.runFunAndCheckKey(() -> {
|
||||||
TbOrderInfo orderInfo = null;
|
long count = tbShopPayTypeMapper.selectCount(new LambdaQueryWrapper<TbShopPayType>()
|
||||||
|
.eq(TbShopPayType::getShopId, payDTO.getShopId())
|
||||||
|
.eq(TbShopPayType::getIsDisplay, 1)
|
||||||
|
.eq(TbShopPayType::getPayType, "deposit"));
|
||||||
|
if (count < 1) {
|
||||||
|
throw new BadRequestException("未知支付方式");
|
||||||
|
}
|
||||||
|
|
||||||
|
TbOrderInfo orderInfo = orderInfoMapper.selectById(payDTO.getOrderId());
|
||||||
|
|
||||||
|
if (ObjectUtil.isEmpty(orderInfo)) {
|
||||||
|
throw new BadRequestException("订单不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!"unpaid".equals(orderInfo.getStatus()) && !"pending".equals(orderInfo.getStatus())) {
|
||||||
|
throw new BadRequestException("订单非未支付状态");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (payDTO.getDiscount() == null) {
|
||||||
|
payDTO.setDiscount((double) 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
BigDecimal finalAmount = orderInfo.getOrderAmount().multiply(BigDecimal.valueOf(payDTO.getDiscount())).setScale(2, RoundingMode.HALF_UP);
|
||||||
|
|
||||||
switch (payDTO.getPayType()) {
|
switch (payDTO.getPayType()) {
|
||||||
case "vipPay":
|
case "vipPay":
|
||||||
orderInfo = tbPayServiceImpl.vipPay(payDTO.getShopId(), payDTO.getOrderId(), payDTO.getDiscount(), payDTO.getVipUserId());
|
if (payDTO.getVipUserId() != null) {
|
||||||
|
orderInfo.setUserId(String.valueOf(payDTO.getVipUserId()));
|
||||||
|
}
|
||||||
|
tbPayServiceImpl.vipPay(finalAmount, Integer.valueOf(orderInfo.getUserId()));
|
||||||
|
orderInfo.setPayOrderNo("vipPay".concat(SnowFlakeUtil.generateOrderNo()));
|
||||||
|
orderInfo.setPayType("deposit");
|
||||||
break;
|
break;
|
||||||
case "cash":
|
case "cash":
|
||||||
orderInfo = tbPayServiceImpl.cashPay(payDTO);
|
orderInfo.setPayType("cash");
|
||||||
|
orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo()));
|
||||||
|
|
||||||
|
// orderInfo = tbPayServiceImpl.cashPay(payDTO);
|
||||||
break;
|
break;
|
||||||
case "scanCode":
|
case "scanCode":
|
||||||
orderInfo = tbPayServiceImpl.scanPay(payDTO);
|
orderInfo = tbPayServiceImpl.scanPay(payDTO.getShopId(), payDTO.getCode(), Integer.valueOf(orderInfo.getMerchantId()), Integer.valueOf(orderInfo.getMemberId()), finalAmount, orderInfo);
|
||||||
break;
|
break;
|
||||||
case "deposit":
|
case "deposit":
|
||||||
orderInfo = tbPayServiceImpl.memberAccountPay("", String.valueOf(payDTO.getShopId()), payDTO.getCode(), payDTO.getOrderId(), payDTO.getDiscount());
|
orderInfo = tbPayServiceImpl.memberAccountPay("", String.valueOf(payDTO.getShopId()), payDTO.getCode(), orderInfo, finalAmount);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new BadRequestException("未知支付方式");
|
throw new BadRequestException("未知支付方式");
|
||||||
}
|
}
|
||||||
|
|
||||||
log.info("更新购物车");
|
orderInfo.setPayAmount(finalAmount);
|
||||||
|
orderInfo.setStatus("closed");
|
||||||
|
orderInfo.setDiscountRatio(BigDecimal.valueOf(payDTO.getDiscount()));
|
||||||
|
orderInfo.setDiscountAmount(orderInfo.getAmount().subtract(finalAmount));
|
||||||
|
orderInfoMapper.updateById(orderInfo);
|
||||||
|
|
||||||
|
//更新购物车状态
|
||||||
|
cashierCartMapper.update(null, new LambdaUpdateWrapper<TbCashierCart>()
|
||||||
|
.eq(TbCashierCart::getOrderId, orderInfo.getId())
|
||||||
|
.set(TbCashierCart::getStatus, "final"));
|
||||||
|
|
||||||
|
orderDetailMapper.update(null, new LambdaUpdateWrapper<TbOrderDetail>()
|
||||||
|
.eq(TbOrderDetail::getOrderId, orderInfo.getId())
|
||||||
|
.set(TbOrderDetail::getStatus, "closed"));
|
||||||
|
|
||||||
|
|
||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
jsonObject.put("token", null);
|
jsonObject.put("token", null);
|
||||||
@@ -1327,4 +1444,94 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
}
|
}
|
||||||
return cashierCartMapper.update(null, queryWrapper);
|
return cashierCartMapper.update(null, queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getCurrentOrderId(String tableId, String shopId) {
|
||||||
|
String currentOrderKey = RedisConstant.getCurrentOrderKey(tableId, shopId);
|
||||||
|
return redisTemplate.opsForValue().get(currentOrderKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object choseTable(ChoseTableDTO choseTableDTO) {
|
||||||
|
String masterId = getMasterId(choseTableDTO.getShopId(), Long.valueOf(choseTableDTO.getNewTableId()), null).getString("masterId");
|
||||||
|
String currentOrderId = choseTableDTO.getOrderId() == null ? getCurrentOrderId(choseTableDTO.getOldTableId(),
|
||||||
|
choseTableDTO.getShopId().toString()) : choseTableDTO.getOrderId().toString();
|
||||||
|
|
||||||
|
TbShopTable shopTable = mpShopTableMapper.selectOne(new LambdaQueryWrapper<TbShopTable>()
|
||||||
|
.eq(TbShopTable::getQrcode, choseTableDTO.getNewTableId())
|
||||||
|
.eq(TbShopTable::getStatus, "idle"));
|
||||||
|
if (shopTable == null) {
|
||||||
|
throw new BadRequestException("台桌不存在或非空闲状态");
|
||||||
|
}
|
||||||
|
|
||||||
|
cashierCartMapper.update(null, new LambdaUpdateWrapper<TbCashierCart>()
|
||||||
|
.eq(TbCashierCart::getTableId, choseTableDTO.getOldTableId())
|
||||||
|
.in(TbCashierCart::getStatus, "create", "return")
|
||||||
|
.eq(TbCashierCart::getShopId, choseTableDTO.getShopId())
|
||||||
|
.and(q -> {
|
||||||
|
q.isNull(TbCashierCart::getOrderId)
|
||||||
|
.or()
|
||||||
|
.eq(TbCashierCart::getOrderId, currentOrderId);
|
||||||
|
})
|
||||||
|
.and(query2 -> {
|
||||||
|
query2.or(query3 -> {
|
||||||
|
query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay())
|
||||||
|
.isNotNull(TbCashierCart::getMasterId);
|
||||||
|
})
|
||||||
|
.or((query4 -> {
|
||||||
|
query4.isNull(TbCashierCart::getTradeDay)
|
||||||
|
.isNull(TbCashierCart::getMasterId);
|
||||||
|
}));
|
||||||
|
})
|
||||||
|
.set(TbCashierCart::getMasterId, masterId)
|
||||||
|
.set(TbCashierCart::getTableId, choseTableDTO.getNewTableId()));
|
||||||
|
|
||||||
|
|
||||||
|
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||||
|
.eq(TbShopTable::getQrcode, choseTableDTO.getNewTableId())
|
||||||
|
.set(TbShopTable::getStatus, "using"));
|
||||||
|
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||||
|
.eq(TbShopTable::getQrcode, choseTableDTO.getOldTableId())
|
||||||
|
.set(TbShopTable::getStatus, "idle"));
|
||||||
|
|
||||||
|
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
|
||||||
|
.eq(TbOrderInfo::getId, currentOrderId)
|
||||||
|
.set(TbOrderInfo::getMasterId, masterId)
|
||||||
|
.set(TbOrderInfo::getTableId, choseTableDTO.getNewTableId()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object choseCount(ChoseCountDTO choseCountDTO) {
|
||||||
|
LambdaQueryWrapper<TbCashierCart> query = new LambdaQueryWrapper<TbCashierCart>()
|
||||||
|
.eq(TbCashierCart::getShopId, choseCountDTO.getShopId())
|
||||||
|
.eq(TbCashierCart::getMasterId, choseCountDTO.getMasterId())
|
||||||
|
.eq(TbCashierCart::getProductId, -999)
|
||||||
|
.eq(TbCashierCart::getTableId, choseCountDTO.getTableId());
|
||||||
|
TbCashierCart tbCashierCart = cashierCartMapper.selectOne(query);
|
||||||
|
|
||||||
|
if (tbCashierCart == null) {
|
||||||
|
tbCashierCart = new TbCashierCart();
|
||||||
|
tbCashierCart.setStatus("create");
|
||||||
|
tbCashierCart.setCreatedAt(System.currentTimeMillis());
|
||||||
|
tbCashierCart.setTableId(Long.valueOf(choseCountDTO.getTableId()));
|
||||||
|
tbCashierCart.setName("客座费");
|
||||||
|
tbCashierCart.setSalePrice(BigDecimal.ONE);
|
||||||
|
tbCashierCart.setMasterId(choseCountDTO.getMasterId());
|
||||||
|
tbCashierCart.setShopId(String.valueOf(choseCountDTO.getShopId()));
|
||||||
|
tbCashierCart.setTradeDay(DateUtils.getDay());
|
||||||
|
tbCashierCart.setStatus("create");
|
||||||
|
tbCashierCart.setTotalAmount(new BigDecimal(choseCountDTO.getNum()).multiply(BigDecimal.ONE));
|
||||||
|
tbCashierCart.setPlaceNum(1);
|
||||||
|
tbCashierCart.setProductId("-999");
|
||||||
|
tbCashierCart.setSkuId("-999");
|
||||||
|
tbCashierCartMapper.insert(tbCashierCart);
|
||||||
|
}else {
|
||||||
|
tbCashierCart.setTotalAmount(new BigDecimal(choseCountDTO.getNum()).multiply(BigDecimal.ONE));
|
||||||
|
tbCashierCart.setNumber(choseCountDTO.getNum());
|
||||||
|
tbCashierCart.setTotalNumber(choseCountDTO.getNum());
|
||||||
|
tbCashierCartMapper.updateById(tbCashierCart);
|
||||||
|
}
|
||||||
|
|
||||||
|
return tbCashierCart;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import cn.ysk.cashier.pojo.order.TbCashierCart;
|
|||||||
import cn.ysk.cashier.pojo.shop.TbShopTable;
|
import cn.ysk.cashier.pojo.shop.TbShopTable;
|
||||||
import cn.ysk.cashier.dto.shop.TbShopTableDto;
|
import cn.ysk.cashier.dto.shop.TbShopTableDto;
|
||||||
import cn.ysk.cashier.dto.shop.TbShopTableQueryCriteria;
|
import cn.ysk.cashier.dto.shop.TbShopTableQueryCriteria;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -100,6 +101,8 @@ public interface TbShopTableService {
|
|||||||
|
|
||||||
void removeCart(RemoveCartDTO removeCartDTO);
|
void removeCart(RemoveCartDTO removeCartDTO);
|
||||||
|
|
||||||
|
void returnCart(RemoveCartDTO removeCartDTO);
|
||||||
|
|
||||||
void clearCart(ClearCartDTO clearCartDTO);
|
void clearCart(ClearCartDTO clearCartDTO);
|
||||||
|
|
||||||
Page<TbCashierCart> getCart(Long tableId, Integer page, Integer size, Integer shopId, Integer vipUserId, String masterId);
|
Page<TbCashierCart> getCart(Long tableId, Integer page, Integer size, Integer shopId, Integer vipUserId, String masterId);
|
||||||
@@ -110,7 +113,7 @@ public interface TbShopTableService {
|
|||||||
|
|
||||||
Object createOrder(CreateOrderDTO createOrderDTO, boolean addMasterId, boolean isPrint);
|
Object createOrder(CreateOrderDTO createOrderDTO, boolean addMasterId, boolean isPrint);
|
||||||
|
|
||||||
Object getMasterId(Integer shopId, Long tableId, Integer vipUserId);
|
JSONObject getMasterId(Integer shopId, Long tableId, Integer vipUserId);
|
||||||
|
|
||||||
Object pending(PendingDTO pendingDTO);
|
Object pending(PendingDTO pendingDTO);
|
||||||
|
|
||||||
@@ -123,4 +126,8 @@ public interface TbShopTableService {
|
|||||||
Object deleteOrder(DeleteOrderDTO deleteOrderDTO);
|
Object deleteOrder(DeleteOrderDTO deleteOrderDTO);
|
||||||
|
|
||||||
Object updateVip(UpdateVipDTO updateVipDTO);
|
Object updateVip(UpdateVipDTO updateVipDTO);
|
||||||
|
|
||||||
|
Object choseTable(ChoseTableDTO choseTableDTO);
|
||||||
|
|
||||||
|
Object choseCount(ChoseCountDTO choseCountDTO);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,4 +46,12 @@ public class RabbitMsgUtils implements RabbitTemplate.ConfirmCallback {
|
|||||||
// 发送库存记录mq消息
|
// 发送库存记录mq消息
|
||||||
sendMsg(RabbitConstants.EXCHANGE_STOCK_RECORD, RabbitConstants.ROUTING_STOCK_RECORD_SALE, mqData, "库存记录", true);
|
sendMsg(RabbitConstants.EXCHANGE_STOCK_RECORD, RabbitConstants.ROUTING_STOCK_RECORD_SALE, mqData, "库存记录", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void printDishesReturnTicket(Integer orderId, Integer... orderIds) {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("orderId", orderId);
|
||||||
|
jsonObject.put("orderDetailIds", orderIds);
|
||||||
|
jsonObject.put("isReturn", true);
|
||||||
|
sendMsg(RabbitConstants.EXCHANGE_PRINT, RabbitConstants.ROUTING_KEY_PRINT_DISHES, jsonObject, "菜品退单", false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user