1.代客下单 会员支付,支付修改台桌状态
This commit is contained in:
@@ -3,10 +3,13 @@ package com.chaozhanggui.system.cashierservice.service;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.chaozhanggui.system.cashierservice.bean.TableStateEnum;
|
||||
import com.chaozhanggui.system.cashierservice.dao.*;
|
||||
import com.chaozhanggui.system.cashierservice.entity.*;
|
||||
import com.chaozhanggui.system.cashierservice.model.ScanPayReq;
|
||||
import com.chaozhanggui.system.cashierservice.model.TradeQueryReq;
|
||||
import com.chaozhanggui.system.cashierservice.mybatis.MpShopTableMapper;
|
||||
import com.chaozhanggui.system.cashierservice.rabbit.RabbitProducer;
|
||||
import com.chaozhanggui.system.cashierservice.sign.CodeEnum;
|
||||
import com.chaozhanggui.system.cashierservice.sign.Result;
|
||||
@@ -20,6 +23,7 @@ import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -76,6 +80,9 @@ public class MemberService {
|
||||
|
||||
@Autowired
|
||||
TbmerchantAccountMapper tbmerchantAccountMapper;
|
||||
@Qualifier("tbOrderInfoMapper")
|
||||
@Autowired
|
||||
private TbOrderInfoMapper tbOrderInfoMapper;
|
||||
|
||||
public Result queryMember(String shopId, String phone, int page, int pageSize) {
|
||||
|
||||
@@ -549,6 +556,9 @@ public class MemberService {
|
||||
|
||||
String shopId = String.valueOf(map.get("shopId"));
|
||||
|
||||
Integer orderId = Integer.parseInt(String.valueOf(map.get("orderId")));
|
||||
TbOrderInfo orderInfo = tbOrderInfoMapper.selectById(orderId);
|
||||
|
||||
|
||||
TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(shopId));
|
||||
if (ObjectUtil.isEmpty(shopInfo) || shopInfo == null) {
|
||||
@@ -633,10 +643,18 @@ public class MemberService {
|
||||
|
||||
producer.putOrderCollect(jsonObject.toJSONString());
|
||||
|
||||
// 修改台桌状态
|
||||
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
|
||||
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
|
||||
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS);
|
||||
}
|
||||
|
||||
private MpShopTableMapper mpShopTableMapper;
|
||||
|
||||
|
||||
|
||||
public Result queryMemberAccount(String memberId, int page, int pageSize) {
|
||||
if (ObjectUtil.isEmpty(memberId)) {
|
||||
|
||||
@@ -494,7 +494,6 @@ public class OrderService {
|
||||
.eq(TbCashierCart::getShopId, orderVo.getShopId())
|
||||
.eq(TbCashierCart::getStatus, "create");
|
||||
|
||||
|
||||
// 普通点单
|
||||
if (StrUtil.isBlank(orderVo.getTableId())) {
|
||||
queryWrapper.eq(TbCashierCart::getMasterId, orderVo.getMasterId())
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.chaozhanggui.system.cashierservice.bean.TableStateEnum;
|
||||
import com.chaozhanggui.system.cashierservice.dao.*;
|
||||
import com.chaozhanggui.system.cashierservice.entity.*;
|
||||
import com.chaozhanggui.system.cashierservice.entity.dto.ReturnGroupOrderDto;
|
||||
@@ -13,6 +14,7 @@ import com.chaozhanggui.system.cashierservice.exception.MsgException;
|
||||
import com.chaozhanggui.system.cashierservice.model.ReturnOrderReq;
|
||||
import com.chaozhanggui.system.cashierservice.model.ScanPayReq;
|
||||
import com.chaozhanggui.system.cashierservice.model.TradeQueryReq;
|
||||
import com.chaozhanggui.system.cashierservice.mybatis.MpShopTableMapper;
|
||||
import com.chaozhanggui.system.cashierservice.mybatis.MpShopUserFlowMapper;
|
||||
import com.chaozhanggui.system.cashierservice.mybatis.MpShopUserMapper;
|
||||
import com.chaozhanggui.system.cashierservice.rabbit.RabbitProducer;
|
||||
@@ -126,6 +128,8 @@ public class PayService {
|
||||
private MpShopUserMapper mpShopUserMapper;
|
||||
@Autowired
|
||||
private MpShopUserFlowMapper mpShopUserFlowMapper;
|
||||
@Autowired
|
||||
private MpShopTableMapper mpShopTableMapper;
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
@@ -297,6 +301,13 @@ public class PayService {
|
||||
|
||||
producer.printMechine(orderId);
|
||||
|
||||
// 修改台桌状态
|
||||
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
|
||||
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
|
||||
|
||||
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS, object.getJSONObject("data"));
|
||||
} else {
|
||||
String status = ObjectUtil.isNotEmpty(object.getJSONObject("data")) ? object.getJSONObject("data").getString("status") : null;
|
||||
@@ -309,6 +320,13 @@ public class PayService {
|
||||
payment.setTradeNumber(object.getJSONObject("data").get("orderNumber").toString());
|
||||
payment.setUpdatedAt(System.currentTimeMillis());
|
||||
tbOrderPaymentMapper.updateByPrimaryKeySelective(payment);
|
||||
|
||||
// 修改台桌状态
|
||||
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
|
||||
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
|
||||
|
||||
|
||||
return Result.success(CodeEnum.PAYING);
|
||||
}
|
||||
// orderInfo.setStatus("fail");
|
||||
@@ -357,6 +375,11 @@ public class PayService {
|
||||
producer.putOrderCollect(jsonObject.toJSONString());
|
||||
|
||||
producer.printMechine(orderId);
|
||||
// 修改台桌状态
|
||||
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
|
||||
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
|
||||
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS, mainScanResp);
|
||||
} else if ("TRADE_AWAIT".equals(mainScanResp.getState())) {
|
||||
@@ -367,6 +390,12 @@ public class PayService {
|
||||
payment.setTradeNumber(mainScanResp.getPayOrderId());
|
||||
payment.setUpdatedAt(System.currentTimeMillis());
|
||||
tbOrderPaymentMapper.updateByPrimaryKeySelective(payment);
|
||||
// 修改台桌状态
|
||||
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
|
||||
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
|
||||
|
||||
|
||||
return Result.success(CodeEnum.PAYING);
|
||||
}
|
||||
}
|
||||
@@ -718,7 +747,7 @@ public class PayService {
|
||||
return Result.success(CodeEnum.SUCCESS);
|
||||
}
|
||||
|
||||
public Result vipPay(String orderId, String token, Integer vipUserId) {
|
||||
public Result vipPay(Integer orderId, String token, Integer vipUserId, BigDecimal payAmount, BigDecimal discountAmount) {
|
||||
if (ObjectUtil.isEmpty(orderId)) {
|
||||
return Result.fail(CodeEnum.PARAM);
|
||||
}
|
||||
@@ -739,6 +768,11 @@ public class PayService {
|
||||
return Result.fail(CodeEnum.PAYTYPENOEXIST);
|
||||
}
|
||||
|
||||
|
||||
if (payAmount != null && discountAmount != null && payAmount.add(discountAmount).compareTo(orderInfo.getOrderAmount()) != 0) {
|
||||
return Result.fail("优惠金额 + 支付金额不等于订单金额");
|
||||
}
|
||||
|
||||
// 扣减会员余额
|
||||
TbShopUser shopUser = mpShopUserMapper.selectOne(new LambdaUpdateWrapper<TbShopUser>()
|
||||
.eq(TbShopUser::getStatus, 1)
|
||||
@@ -764,13 +798,19 @@ public class PayService {
|
||||
mpShopUserFlowMapper.insert(userFlow);
|
||||
|
||||
|
||||
orderInfo.setPayAmount(orderInfo.getOrderAmount());
|
||||
if (payAmount != null && discountAmount != null) {
|
||||
orderInfo.setPayAmount(payAmount);
|
||||
orderInfo.setDiscountAmount(discountAmount);
|
||||
}else {
|
||||
orderInfo.setPayAmount(orderInfo.getOrderAmount());
|
||||
}
|
||||
|
||||
orderInfo.setPayType("cash");
|
||||
orderInfo.setStatus("closed");
|
||||
orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo()));
|
||||
tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo);
|
||||
//更新购物车状态
|
||||
int cartCount = tbCashierCartMapper.updateByOrderId(orderId, "final");
|
||||
int cartCount = tbCashierCartMapper.updateByOrderId(String.valueOf(orderId), "final");
|
||||
|
||||
tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed");
|
||||
log.info("更新购物车:{}", cartCount);
|
||||
@@ -783,14 +823,17 @@ public class PayService {
|
||||
producer.putOrderCollect(jsonObject.toJSONString());
|
||||
|
||||
|
||||
producer.printMechine(orderId);
|
||||
producer.printMechine(String.valueOf(orderId));
|
||||
|
||||
// 发送库存记录mq消息
|
||||
JSONObject mqData = new JSONObject();
|
||||
mqData.put("orderId", orderId);
|
||||
mqData.put("type", "pc");
|
||||
producer.sendStockSaleMsg(mqData);
|
||||
|
||||
// 修改台桌状态
|
||||
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
|
||||
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
|
||||
return Result.success(CodeEnum.SUCCESS);
|
||||
}
|
||||
|
||||
@@ -869,6 +912,10 @@ public class PayService {
|
||||
|
||||
redisUtil.del("SHOP:CODE:USER:" + "pc" + ":" + orderInfo.getShopId() + ":" + DateUtils.getDay() + TokenUtil.parseParamFromToken(token).getString("accountId"));
|
||||
|
||||
// 修改台桌状态
|
||||
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
|
||||
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS);
|
||||
}
|
||||
@@ -946,6 +993,10 @@ public class PayService {
|
||||
|
||||
redisUtil.del("SHOP:CODE:USER:" + "pc" + ":" + orderInfo.getShopId() + ":" + DateUtils.getDay() + TokenUtil.parseParamFromToken(token).getString("accountId"));
|
||||
|
||||
// 修改台桌状态
|
||||
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
|
||||
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
|
||||
return Result.success(CodeEnum.SUCCESS);
|
||||
}
|
||||
|
||||
@@ -1248,6 +1299,10 @@ public class PayService {
|
||||
}
|
||||
redisUtil.del("SHOP:CODE:USER:" + "pc" + ":" + orderInfo.getShopId() + ":" + DateUtils.getDay() + TokenUtil.parseParamFromToken(token).getString("accountId"));
|
||||
|
||||
// 修改台桌状态
|
||||
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
|
||||
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
|
||||
return Result.success(CodeEnum.SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user