order服务拆分

This commit is contained in:
2025-11-26 16:49:02 +08:00
parent 6c4458113e
commit a7dbe0e251
25 changed files with 305 additions and 846 deletions

View File

@@ -5,9 +5,10 @@ import com.czg.order.entity.OrderInfo;
import com.czg.service.market.mapper.OrderInfoMapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.context.annotation.Primary;
/**
* @author Administrator
*/
@DubboService
@Primary
public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo> implements OrderInfoService {
}

View File

@@ -1,143 +1,141 @@
//package com.czg.service.order.mapper;
//
//import com.czg.account.vo.HandoverCategoryListVo;
//import com.czg.account.vo.HandoverProductListVo;
//import com.czg.order.entity.OrderInfo;
//import com.mybatisflex.core.BaseMapper;
//import org.apache.ibatis.annotations.Param;
//
//import java.math.BigDecimal;
//import java.util.List;
//
///**
// * 订单表 映射层。
// *
// * @author ww
// * @since 2025-02-13
// */
//public interface OrderInfoCustomMapper extends BaseMapper<OrderInfo> {
//
// /**
// * 交班现金支付统计
// *
// * @param shopId 店铺id
// * @param loginTime 上岗时间
// * @param handoverTime 交班时间
// * @return 现金支付总额
// */
// BigDecimal getHandoverCashAmount(Long shopId, String loginTime, String handoverTime);
//
// /**
// * 交班微信支付统计
// *
// * @param shopId 店铺id
// * @param loginTime 上岗时间
// * @param handoverTime 交班时间
// * @return 现金支付总额
// */
// BigDecimal getHandoverWechatAmount(Long shopId, String loginTime, String handoverTime);
//
// /**
// * 交班支付宝支付统计
// *
// * @param shopId 店铺id
// * @param loginTime 上岗时间
// * @param handoverTime 交班时间
// * @return 支付宝支付总额
// */
// BigDecimal getHandoverAlipayAmount(Long shopId, String loginTime, String handoverTime);
//
// /**
// * 交班VIP支付统计
// *
// * @param shopId 店铺id
// * @param loginTime 上岗时间
// * @param handoverTime 交班时间
// * @return VIP支付总额
// */
// BigDecimal getHandoverVipPayAmount(Long shopId, String loginTime, String handoverTime);
//
// /**
// * 交班VIP充值统计
// *
// * @param shopId 店铺id
// * @param loginTime 上岗时间
// * @param handoverTime 交班时间
// * @return VIP充值总额
// */
// BigDecimal getHandoverVipChargeAmount(Long shopId, String loginTime, String handoverTime);
//
// /**
// * 交班快捷支付统计
// *
// * @param shopId 店铺id
// * @param loginTime 上岗时间
// * @param handoverTime 交班时间
// * @return 快捷支付总额
// */
// BigDecimal getHandoverQuickPayAmount(Long shopId, String loginTime, String handoverTime);
//
// /**
// * 交班退款统计
// *
// * @param shopId 店铺id
// * @param loginTime 上岗时间
// * @param handoverTime 交班时间
// * @return 退款总额
// */
// BigDecimal getHandoverRefundAmount(Long shopId, String loginTime, String handoverTime);
//
// /**
// * 交班挂账统计
// *
// * @param shopId 店铺id
// * @param loginTime 上岗时间
// * @param handoverTime 交班时间
// * @return 挂账总额
// */
// BigDecimal getHandoverCreditAmount(Long shopId, String loginTime, String handoverTime);
//
// /**
// * 交班营业额统计
// *
// * @param shopId 店铺id
// * @param loginTime 上岗时间
// * @param handoverTime 交班时间
// * @return 营业额
// */
// BigDecimal getHandoverTotalAmount(Long shopId, String loginTime, String handoverTime);
//
// /**
// * 交班订单数统计
// *
// * @param shopId 店铺id
// * @param loginTime 上岗时间
// * @param handoverTime 交班时间
// * @return 交班订单数
// */
// int getHandoverOrderNum(Long shopId, String loginTime, String handoverTime);
//
// /**
// * 交班售出商品明细
// *
// * @param shopId 店铺id
// * @param loginTime 上岗时间
// * @param handoverTime 交班时间
// * @return 交班售出商品明细
// */
// List<HandoverProductListVo> getHandoverDetailList(Long shopId, String loginTime, String handoverTime);
//
// /**
// * 交班售出商品分类统计
// *
// * @param shopId 店铺id
// * @param loginTime 上岗时间
// * @param handoverTime 交班时间
// * @return 售出商品分类统计
// */
// List<HandoverCategoryListVo> getHandoverCategoryList(Long shopId, String loginTime, String handoverTime);
//
// int decrMoney(@Param("id") Long id, @Param("amount") BigDecimal amount);
//
// int updatePayOrderId(@Param("orderId") Long orderId, @Param("paymentId") Long paymentId, @Param("payType") String payType, @Param("remark") String remark);
//}
package com.czg.service.order.mapper;
import com.czg.account.vo.HandoverCategoryListVo;
import com.czg.account.vo.HandoverProductListVo;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
/**
* 订单表 映射层。
*
* @author ww
* @since 2025-02-13
*/
public interface OrderInfoCustomMapper{
/**
* 交班现金支付统计
*
* @param shopId 店铺id
* @param loginTime 上岗时间
* @param handoverTime 交班时间
* @return 现金支付总额
*/
BigDecimal getHandoverCashAmount(Long shopId, String loginTime, String handoverTime);
/**
* 交班微信支付统计
*
* @param shopId 店铺id
* @param loginTime 上岗时间
* @param handoverTime 交班时间
* @return 现金支付总额
*/
BigDecimal getHandoverWechatAmount(Long shopId, String loginTime, String handoverTime);
/**
* 交班支付宝支付统计
*
* @param shopId 店铺id
* @param loginTime 上岗时间
* @param handoverTime 交班时间
* @return 支付宝支付总额
*/
BigDecimal getHandoverAlipayAmount(Long shopId, String loginTime, String handoverTime);
/**
* 交班VIP支付统计
*
* @param shopId 店铺id
* @param loginTime 上岗时间
* @param handoverTime 交班时间
* @return VIP支付总额
*/
BigDecimal getHandoverVipPayAmount(Long shopId, String loginTime, String handoverTime);
/**
* 交班VIP充值统计
*
* @param shopId 店铺id
* @param loginTime 上岗时间
* @param handoverTime 交班时间
* @return VIP充值总额
*/
BigDecimal getHandoverVipChargeAmount(Long shopId, String loginTime, String handoverTime);
/**
* 交班快捷支付统计
*
* @param shopId 店铺id
* @param loginTime 上岗时间
* @param handoverTime 交班时间
* @return 快捷支付总额
*/
BigDecimal getHandoverQuickPayAmount(Long shopId, String loginTime, String handoverTime);
/**
* 交班退款统计
*
* @param shopId 店铺id
* @param loginTime 上岗时间
* @param handoverTime 交班时间
* @return 退款总额
*/
BigDecimal getHandoverRefundAmount(Long shopId, String loginTime, String handoverTime);
/**
* 交班挂账统计
*
* @param shopId 店铺id
* @param loginTime 上岗时间
* @param handoverTime 交班时间
* @return 挂账总额
*/
BigDecimal getHandoverCreditAmount(Long shopId, String loginTime, String handoverTime);
/**
* 交班营业额统计
*
* @param shopId 店铺id
* @param loginTime 上岗时间
* @param handoverTime 交班时间
* @return 营业额
*/
BigDecimal getHandoverTotalAmount(Long shopId, String loginTime, String handoverTime);
/**
* 交班订单数统计
*
* @param shopId 店铺id
* @param loginTime 上岗时间
* @param handoverTime 交班时间
* @return 交班订单数
*/
int getHandoverOrderNum(Long shopId, String loginTime, String handoverTime);
/**
* 交班售出商品明细
*
* @param shopId 店铺id
* @param loginTime 上岗时间
* @param handoverTime 交班时间
* @return 交班售出商品明细
*/
List<HandoverProductListVo> getHandoverDetailList(Long shopId, String loginTime, String handoverTime);
/**
* 交班售出商品分类统计
*
* @param shopId 店铺id
* @param loginTime 上岗时间
* @param handoverTime 交班时间
* @return 售出商品分类统计
*/
List<HandoverCategoryListVo> getHandoverCategoryList(Long shopId, String loginTime, String handoverTime);
int decrMoney(@Param("id") Long id, @Param("amount") BigDecimal amount);
int updatePayOrderId(@Param("orderId") Long orderId, @Param("paymentId") Long paymentId, @Param("payType") String payType, @Param("remark") String remark);
}

View File

@@ -8,6 +8,7 @@ import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import org.apache.dubbo.config.annotation.DubboService;
import java.time.LocalDateTime;
import java.util.List;
/**
@@ -33,6 +34,7 @@ public class OrderDetailServiceImpl extends ServiceImpl<OrderDetailMapper, Order
public void updateOrderDetailStatus(Long orderId,String status) {
OrderDetail orderDetail = new OrderDetail();
orderDetail.setStatus(status);
orderDetail.setOrderTime(LocalDateTime.now());
update(orderDetail, QueryWrapper.create()
.eq(OrderDetail::getOrderId,orderId)
.eq(OrderDetail::getStatus,"wait-pay")

View File

@@ -45,24 +45,20 @@ import com.czg.product.service.ProductService;
import com.czg.resp.CzgResult;
import com.czg.sa.StpKit;
import com.czg.service.RedisService;
import com.czg.service.market.mapper.OrderInfoMapper;
import com.czg.service.market.service.impl.OrderInfoServiceImpl;
import com.czg.service.order.enums.OrderStatusEnums;
import com.czg.service.order.mapper.OrderInfoCustomMapper;
import com.czg.service.order.print.PrinterHandler;
import com.czg.utils.AssertUtil;
import com.czg.utils.CzgStrUtils;
import com.czg.utils.PageUtil;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.update.UpdateChain;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import jakarta.validation.constraints.NotBlank;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.jetbrains.annotations.NotNull;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronization;
@@ -87,8 +83,11 @@ import java.util.stream.Collectors;
*/
@Slf4j
@Service
public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements OrderInfoCustomService {
public class OrderInfoCustomServiceImpl implements OrderInfoCustomService {
@Resource
private OrderInfoCustomMapper orderInfoCustomMapper;
@Resource
private OrderInfoService orderInfoService;
@Lazy
@Resource
private PrinterHandler printerHandler;
@@ -176,7 +175,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
.le(OrderInfo::getCreateTime, CzgStrUtils.getStrOrNull(param.getEndTime()))
.in(OrderInfo::getId, like)
.orderBy(OrderInfo::getId).desc();
Page<OrderInfoVo> orderInfoVoPage = pageAs(PageUtil.buildPage(), queryWrapper, OrderInfoVo.class);
Page<OrderInfoVo> orderInfoVoPage = orderInfoService.pageAs(PageUtil.buildPage(), queryWrapper, OrderInfoVo.class);
orderInfoVoPage.getRecords().parallelStream().forEach(s -> {
List<OrderDetailSmallVO> orderDetails = orderDetailService.listAs(
QueryWrapper.create().eq(OrderDetail::getOrderId, s.getId()).eq(OrderDetail::getShopId, s.getShopId()), OrderDetailSmallVO.class);
@@ -194,7 +193,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
@Override
public CzgResult<HistoryOrderPrintVo> getOrderByIdPrint(Long orderId) {
HistoryOrderPrintVo historyOrderVo = getOneAs(new QueryWrapper()
HistoryOrderPrintVo historyOrderVo = orderInfoService.getOneAs(new QueryWrapper()
.eq(OrderInfo::getId, orderId), HistoryOrderPrintVo.class);
AssertUtil.isNull(historyOrderVo, "订单不存在");
List<OrderDetailPrintVo> orderDetails = orderDetailService.getOrderDetailPrint(orderId);
@@ -211,11 +210,11 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
resultMap.computeIfAbsent(placeNum.toString(), k -> new ArrayList<>()).add(orderDetail);
}
historyOrderVo.setDetailMap(resultMap);
long count = queryChain()
long count = orderInfoService.count(QueryWrapper.create()
.eq(OrderInfo::getTradeDay, historyOrderVo.getTradeDay())
.eq(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode())
.eq(OrderInfo::getShopId, historyOrderVo.getShopId())
.le(OrderInfo::getCreateTime, historyOrderVo.getCreateTime()).count();
.le(OrderInfo::getCreateTime, historyOrderVo.getCreateTime()));
historyOrderVo.setOrderNum(count);
return CzgResult.success(historyOrderVo);
}
@@ -230,15 +229,13 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
}
HistoryOrderVo historyOrderVo;
if (orderId == null) {
historyOrderVo = queryChain()
.select()
historyOrderVo = orderInfoService.getOneAs(QueryWrapper.create()
.eq(OrderInfo::getShopId, StpKit.USER.getShopId())
.eq(OrderInfo::getTableCode, tableCode)
.eq(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode())
.gt(OrderInfo::getCreateTime, DateUtil.offsetDay(new Date(), -1))
.oneAs(HistoryOrderVo.class);
.gt(OrderInfo::getCreateTime, DateUtil.offsetDay(new Date(), -1)), HistoryOrderVo.class);
} else {
historyOrderVo = getOneAs(new QueryWrapper()
historyOrderVo = orderInfoService.getOneAs(new QueryWrapper()
.eq(OrderInfo::getId, orderId), HistoryOrderVo.class);
}
if (historyOrderVo == null || historyOrderVo.getId() == null) {
@@ -323,7 +320,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
@Override
public OrderInfo checkOrderPay(CheckOrderPay param) throws OrderValidateException, OrderCancelException, CzgException {
AssertUtil.isNull(param.getOrderId(), "支付失败订单id不能为空");
OrderInfo orderInfo = getById(param.getOrderId());
OrderInfo orderInfo = orderInfoService.getById(param.getOrderId());
if (!orderInfo.getStatus().equals(OrderStatusEnums.UNPAID.getCode())) {
throw new OrderCancelException("生成支付订单失败,订单不可支付");
}
@@ -333,10 +330,10 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
} else {
if (!orderInfo.getStatus().equals(OrderStatusEnums.CANCELLED.getCode())) {
ThreadUtil.execAsync(() -> {
updateChain()
.set(OrderInfo::getStatus, OrderStatusEnums.CANCELLED.getCode())
.eq(OrderInfo::getId, param.getOrderId())
.update();
OrderInfo orderInfoUpdate = new OrderInfo();
orderInfoUpdate.setId(orderInfo.getId());
orderInfoUpdate.setStatus(OrderStatusEnums.CANCELLED.getCode());
orderInfoService.updateById(orderInfoUpdate);
rabbitPublisher.sendOrderCancelMsg(orderInfo.getId().toString());
});
}
@@ -550,15 +547,13 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
if (param.getTargetOrderId() == null && StrUtil.isBlank(param.getTargetTableCode())) {
throw new CzgException("转台失败,请选择目标台桌后转台");
}
OrderInfo sourceOrder = getById(param.getSourceOrderId());
OrderInfo sourceOrder = orderInfoService.getById(param.getSourceOrderId());
if (sourceOrder == null || !sourceOrder.getStatus().equals(OrderStatusEnums.UNPAID.getCode())) {
throw new CzgException("转台失败,无可转订单");
}
OrderInfo targetOrder = queryChain()
.eq(OrderInfo::getId, param.getTargetOrderId())
OrderInfo targetOrder = orderInfoService.getOne(QueryWrapper.create().eq(OrderInfo::getId, param.getTargetOrderId())
.eq(OrderInfo::getTableCode, param.getTargetTableCode())
.eq(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode())
.one();
.eq(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode()));
if (targetOrder == null) {
OrderInfoAddDTO addDTO = new OrderInfoAddDTO();
addDTO.setShopId(sourceOrder.getShopId());
@@ -576,7 +571,10 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
} else {
targetOrder.setPlaceNum(targetOrder.getPlaceNum() + 1);
//下单次数+1
updateChain().set(OrderInfo::getPlaceNum, targetOrder.getPlaceNum() + 1).eq(OrderInfo::getId, targetOrder.getId()).update();
OrderInfo updateTargetOrder = new OrderInfo();
updateTargetOrder.setId(targetOrder.getId());
updateTargetOrder.setPlaceNum(targetOrder.getPlaceNum() + 1);
orderInfoService.updateById(updateTargetOrder);
}
if (CollUtil.isEmpty(param.getDetailIds())) {
long count = orderDetailService.queryChain().eq(OrderDetail::getOrderId, sourceOrder.getId()).count();
@@ -1047,7 +1045,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
if ("TRADE_SUCCESS".equals(czgCallBackDto.getState())) {
payment.setPayStatus("success");
if ("order".equals(payment.getPayType())) {
OrderInfo orderInfo = getById(payment.getSourceId());
OrderInfo orderInfo = orderInfoService.getById(payment.getSourceId());
if (orderInfo == null) {
log.error("订单支付回调失败,订单不存在,支付记录Id,{}", payment.getId());
return;
@@ -1079,7 +1077,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
bizEnum = ShopUserFlowBizEnum.CASH_IN;
}
if (isFree) {
orderInfo = getOne(new QueryWrapper().eq(OrderInfo::getId, payment.getRelatedId()));
orderInfo = orderInfoService.getOne(new QueryWrapper().eq(OrderInfo::getId, payment.getRelatedId()));
if (orderInfo == null) {
log.error("霸王餐支付订单不存在支付记录Id,{}", payment.getId());
} else {
@@ -1098,7 +1096,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
orderInfo1.setPayAmount(BigDecimal.ZERO);
orderInfo1.setPaidTime(LocalDateTime.now());
orderInfo1.setPayType(PayEnums.FREE_PAY.getValue());
updateById(orderInfo1);
orderInfoService.updateById(orderInfo1);
orderDetailService.updateOrderDetailStatus(orderInfo.getId(), OrderStatusEnums.DONE.getCode());
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId());
}
@@ -1106,16 +1104,17 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
shopRechargeService.recharge(payment.getShopId(), payment.getSourceId(), payment.getRelatedId(),
BigDecimal.valueOf(czgCallBackDto.getAmount()).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN), payment.getId(), payment.getPayType(), bizEnum);
//充值并支付 ↓
orderInfo = getOne(new QueryWrapper()
orderInfo = orderInfoService.getOne(new QueryWrapper()
.eq(OrderInfo::getPayOrderId, payment.getId())
.eq(OrderInfo::getPayType, PayEnums.VIP_PAY.getValue()));
if (orderInfo != null) {
updateChain().eq(OrderInfo::getId, orderInfo.getId())
.set(OrderInfo::getPayType, PayEnums.VIP_PAY.getValue())
.set(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode())
.set(OrderInfo::getPaidTime, LocalDateTime.now())
.set(OrderInfo::getPayAmount, orderInfo.getOrderAmount())
.update();
OrderInfo upOrderInfo = new OrderInfo()
.setId(orderInfo.getId())
.setPayType(PayEnums.VIP_PAY.getValue())
.setPaidTime(LocalDateTime.now())
.setPayAmount(orderInfo.getOrderAmount())
.setStatus(OrderStatusEnums.DONE.getCode());
orderInfoService.updateById(upOrderInfo);
orderDetailService.updateOrderDetailStatus(orderInfo.getId(), OrderStatusEnums.DONE.getCode());
ShopUserMoneyEditDTO shopUserMoneyEditDTO = new ShopUserMoneyEditDTO()
.setId(shopUser.getId())
@@ -1190,10 +1189,9 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
payment.setPayStatus("fail");
if ("refund".equals(payment.getPayType())) {
//TODO 订单退款失败 暂不考虑回滚 填充退款原因
updateChain()
.set(OrderInfo::getRefundRemark, czgCallBackDto.getRefundReason())
.eq(OrderInfo::getId, payment.getSourceId())
.update();
orderInfoService.updateById(new OrderInfo()
.setId(payment.getSourceId())
.setRefundRemark(czgCallBackDto.getRefundReason()));
} else if ("memberRefund".equals(payment.getPayType())) {
//TODO 会员退款 暂不考虑回滚(钱 赠送金额 赠送的券) 填充退款原因
flowService
@@ -1224,24 +1222,24 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
*/
@Override
public void upOrderInfo(OrderInfo orderInfo, BigDecimal payAmount, LocalDateTime payTime, Long payOrderId, PayEnums payType) {
UpdateChain<OrderInfo> updateChain = updateChain()
.set(OrderInfo::getPayAmount, payAmount)
.set(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode())
.set(OrderInfo::getPaidTime, payTime)
.set(OrderInfo::getRemark, orderInfo.getRemark())
.where(OrderInfo::getId).eq(orderInfo.getId());
OrderInfo upOrderInfo = new OrderInfo()
.setId(orderInfo.getId())
.setPayAmount(payAmount)
.setPaidTime(payTime)
.setRemark(orderInfo.getRemark())
.setStatus(OrderStatusEnums.DONE.getCode());
if (payOrderId != null) {
updateChain.set(OrderInfo::getPayOrderId, payOrderId);
upOrderInfo.setPayOrderId(payOrderId);
orderInfo.setPayOrderId(payOrderId);
}
if (orderInfo.getCreditBuyerId() != null) {
updateChain.set(OrderInfo::getCreditBuyerId, orderInfo.getCreditBuyerId());
upOrderInfo.setCreditBuyerId(orderInfo.getCreditBuyerId());
}
if (ObjectUtil.isNotNull(payType)) {
updateChain.set(OrderInfo::getPayType, payType.getValue());
upOrderInfo.setPayType(payType.getValue());
orderInfo.setPayType(payType.getValue());
}
boolean update = updateChain.update();
boolean update = orderInfoService.updateById(upOrderInfo);
if (update) {
orderInfo.setPayAmount(payAmount);
orderInfo.setStatus(OrderStatusEnums.DONE.getCode());
@@ -1339,12 +1337,9 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
@Override
@Transactional
public void expired(Long orderId) {
OrderInfo orderInfo = getById(orderId);
OrderInfo orderInfo = orderInfoService.getById(orderId);
if (orderInfo.getStatus().equals(OrderStatusEnums.UNPAID.getCode())) {
updateChain().set(OrderInfo::getStatus, OrderStatusEnums.CANCELLED.getCode())
.where(OrderInfo::getId).eq(orderId)
.update();
orderInfoService.updateById(new OrderInfo().setId(orderId).setStatus(OrderStatusEnums.CANCELLED.getCode()));
if (StrUtil.isNotBlank(orderInfo.getTableCode())) {
ShopTable table = shopTableService.getOneByTableCode(orderInfo.getShopId(), orderInfo.getTableCode());
if (table != null) {
@@ -1391,7 +1386,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
private OrderInfo initOrderInfo(OrderInfoAddDTO param, ShopInfo shopInfo, ShopTable table) throws CzgException {
OrderInfo orderInfo = new OrderInfo();
if (param.getOrderId() != null) {
orderInfo = getById(param.getOrderId());
orderInfo = orderInfoService.getById(param.getOrderId());
if (!OrderStatusEnums.UNPAID.getCode().equals(orderInfo.getStatus())) {
throw new CzgException("生成订单失败,订单已结束,请重新下单");
}
@@ -1440,7 +1435,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
orderInfo.setPackFee(orderInfo.getPackFee().add(param.getPackFee()));
orderInfo.setRoundAmount(BigDecimal.ZERO);
orderInfo.setPointsNum(0);
saveOrUpdate(orderInfo);
orderInfoService.saveOrUpdate(orderInfo);
return orderInfo;
}
@@ -1510,7 +1505,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
}
}
}
saveOrUpdate(orderInfo);
orderInfoService.saveOrUpdate(orderInfo);
}
/**
@@ -1562,7 +1557,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
@Override
public Boolean printOrder(Long shopId, OrderInfoPrintDTO orderInfoPrintDTO) {
OrderInfo orderInfo = getOne(new QueryWrapper().eq(OrderInfo::getShopId, shopId).eq(OrderInfo::getId, orderInfoPrintDTO.getId()));
OrderInfo orderInfo = orderInfoService.getOne(new QueryWrapper().eq(OrderInfo::getShopId, shopId).eq(OrderInfo::getId, orderInfoPrintDTO.getId()));
if (orderInfo == null) {
throw new CzgException("订单信息不存在");
}
@@ -1584,7 +1579,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean removeOrderDetail(Long shopId, Long orderId, Long detailId) {
OrderInfo orderInfo = getOne(new QueryWrapper().eq(OrderInfo::getId, orderId).eq(OrderInfo::getShopId, shopId));
OrderInfo orderInfo = orderInfoService.getOne(new QueryWrapper().eq(OrderInfo::getId, orderId).eq(OrderInfo::getShopId, shopId));
if (orderInfo == null) {
throw new CzgException("订单不存在");
}
@@ -1598,7 +1593,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
throw new CzgException("不处于待支付或订单详情不存在");
}
int i = mapper.decrMoney(orderInfo.getId(), orderDetail.getPayAmount().add(orderDetail.getPackAmount()));
int i = orderInfoCustomMapper.decrMoney(orderInfo.getId(), orderDetail.getPayAmount().add(orderDetail.getPackAmount()));
if (i > 0) {
return orderDetailService.removeById(orderDetail.getId());
}
@@ -1608,7 +1603,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean cancelledOrder(Long shopId, Long orderId) throws OrderCancelException {
OrderInfo orderInfo = getById(orderId);
OrderInfo orderInfo = orderInfoService.getById(orderId);
if (orderInfo == null) {
// throw new OrderCancelException("订单不存在");
return true;
@@ -1617,11 +1612,8 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
// throw new OrderCancelException("订单不可取消");
return true;
}
updateChain()
.set(OrderInfo::getStatus, OrderStatusEnums.CANCELLED.getCode())
.eq(OrderInfo::getShopId, shopId)
.eq(OrderInfo::getId, orderId)
.update();
orderInfoService.updateById(new OrderInfo().setId(orderId)
.setStatus(OrderStatusEnums.CANCELLED.getCode()));
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId());
rabbitPublisher.sendOrderCancelMsg(orderInfo.getId().toString());
orderDetailService.updateOrderDetailStatus(orderId, OrderStatusEnums.CANCELLED.getCode());
@@ -1647,7 +1639,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean cancelledPlaceOrder(Long shopId, Long orderId, Integer placeNum) {
OrderInfo orderInfo = getById(orderId);
OrderInfo orderInfo = orderInfoService.getById(orderId);
if (orderInfo == null) {
// throw new OrderCancelException("订单不存在");
return true;
@@ -1657,11 +1649,8 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
return true;
}
if (orderInfo.getPlaceNum().equals(1)) {
updateChain()
.set(OrderInfo::getStatus, OrderStatusEnums.CANCELLED.getCode())
.eq(OrderInfo::getShopId, shopId)
.eq(OrderInfo::getId, orderId)
.update();
orderInfoService.updateById(new OrderInfo().setId(orderId)
.setStatus(OrderStatusEnums.CANCELLED.getCode()));
rabbitPublisher.sendOrderCancelMsg(orderInfo.getId().toString());
return true;
}
@@ -1680,11 +1669,9 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
}
List<OrderDetail> list = orderDetailService.queryChain().eq(OrderDetail::getOrderId, orderId).eq(OrderDetail::getShopId, shopId).list();
if (CollUtil.isEmpty(list)) {
updateChain()
.set(OrderInfo::getStatus, OrderStatusEnums.CANCELLED.getCode())
.set(OrderInfo::getOriginAmount, BigDecimal.ZERO)
.eq(OrderInfo::getShopId, shopId)
.eq(OrderInfo::getId, orderId);
orderInfoService.updateById(new OrderInfo().setId(orderId)
.setStatus(OrderStatusEnums.CANCELLED.getCode())
.setOriginAmount(BigDecimal.ZERO));
return true;
} else {
BigDecimal totalAmount = BigDecimal.ZERO;
@@ -1712,11 +1699,9 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
.update();
}
}
updateChain().eq(OrderInfo::getId, orderId)
.eq(OrderInfo::getShopId, shopId)
.set(OrderInfo::getOriginAmount, totalAmount)
.set(OrderInfo::getPlaceNum, orderInfo.getPlaceNum() - 1)
.update();
orderInfoService.updateById(new OrderInfo().setId(orderId)
.setOriginAmount(totalAmount)
.setPlaceNum(orderInfo.getPlaceNum() - 1));
}
return true;
}
@@ -1724,7 +1709,7 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updatePayOrderId(Long orderId, Long paymentId, String payType, String remark) {
mapper.updatePayOrderId(orderId, paymentId, payType, remark);
orderInfoCustomMapper.updatePayOrderId(orderId, paymentId, payType, remark);
return true;
}
@@ -1767,12 +1752,12 @@ public class OrderInfoCustomServiceImpl extends OrderInfoServiceImpl implements
orderDetailService.updateChain().set(OrderDetail::getSubStatus, TableValueConstant.OrderDetail.SubStatus.READY_TO_SERVE.getCode())
.eq(OrderDetail::getId, detailStatusDTO.getOrderDetailId()).update();
// 上菜
}else {
} else {
if (detailStatusDTO.getOrderId() != null) {
orderDetailService.updateChain().eq(OrderDetail::getSubStatus, TableValueConstant.OrderDetail.SubStatus.READY_TO_SERVE.getCode())
.set(OrderDetail::getSubStatus, TableValueConstant.OrderDetail.SubStatus.SENT_OUT.getCode())
.eq(OrderDetail::getOrderId, detailStatusDTO.getOrderId()).update();
}else {
} else {
orderDetailService.updateChain().eq(OrderDetail::getSubStatus, TableValueConstant.OrderDetail.SubStatus.READY_TO_SERVE.getCode())
.set(OrderDetail::getSubStatus, TableValueConstant.OrderDetail.SubStatus.SENT_OUT.getCode())
.eq(OrderDetail::getId, detailStatusDTO.getOrderDetailId()).update();

View File

@@ -94,7 +94,9 @@ public class PayServiceImpl implements PayService {
@Resource
private CzgPayService czgPayService;
@Resource
private OrderInfoCustomServiceImpl orderInfoService;
private OrderInfoCustomService orderInfoCustomService;
@Resource
private OrderInfoService orderInfoService;
@Resource
private OrderDetailService orderDetailService;
@Resource
@@ -121,7 +123,7 @@ public class PayServiceImpl implements PayService {
private final BigDecimal MONEY_RATE = new BigDecimal("100");
private OrderInfo checkPay(CheckOrderPay checkOrderPay) {
OrderInfo orderInfo = orderInfoService.checkOrderPay(checkOrderPay);
OrderInfo orderInfo = orderInfoCustomService.checkOrderPay(checkOrderPay);
if (orderInfo.getOrderAmount().compareTo(BigDecimal.ZERO) == 0) {
//发送打票信息
//orderId_0_0 订单ID_先付后付(1先付0后付)_订单状态 0未完成 1完成
@@ -151,7 +153,7 @@ public class PayServiceImpl implements PayService {
}
CheckOrderPay checkOrderPay = payParam.getCheckOrderPay();
// CheckOrderPay checkOrderPay = BeanUtil.copyProperties(payParam, CheckOrderPay.class);
OrderInfo orderInfo = orderInfoService.checkOrderPay(checkOrderPay.setFreeDine(true).setWithCoupon(freeConfig.getWithCoupon()).setWithPoints(freeConfig.getWithPoints()));
OrderInfo orderInfo = orderInfoCustomService.checkOrderPay(checkOrderPay.setFreeDine(true).setWithCoupon(freeConfig.getWithCoupon()).setWithPoints(freeConfig.getWithPoints()));
payParam.setAmount(orderInfo.getOrderAmount().multiply(BigDecimal.valueOf(freeConfig.getRechargeTimes())));
return true;
}
@@ -165,7 +167,7 @@ public class PayServiceImpl implements PayService {
AssertUtil.isNull(payParam.getCreditBuyerId(), "请选择挂账人后支付");
OrderInfo orderInfo = checkPay(payParam.getCheckOrderPay());
orderInfo.setCreditBuyerId(payParam.getCreditBuyerId());
orderInfoService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
orderInfoCustomService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
LocalDateTime.now(), null, PayEnums.CREDIT_PAY);
//挂账后续逻辑
buyerOrderService.save(payParam.getCreditBuyerId().toString(), orderInfo.getId());
@@ -176,7 +178,7 @@ public class PayServiceImpl implements PayService {
@Transactional(noRollbackFor = PaySuccessException.class)
public CzgResult<Object> cashPayOrder(OrderPayParamDTO payParam) {
OrderInfo orderInfo = checkPay(payParam.getCheckOrderPay());
orderInfoService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
orderInfoCustomService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
LocalDateTime.now(), null, PayEnums.CASH_PAY);
return CzgResult.success();
}
@@ -247,7 +249,7 @@ public class PayServiceImpl implements PayService {
memberConfigService.deliver(shopUser, TableValueConstant.MemberExpFlow.Type.COST, orderInfo.getOrderAmount(), null, orderInfo.getId());
Long flowId = shopUserService.updateMoney(shopUserMoneyEditDTO);
orderInfoService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
orderInfoCustomService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
LocalDateTime.now(), flowId, PayEnums.VIP_PAY);
@@ -327,7 +329,7 @@ public class PayServiceImpl implements PayService {
if (payParam.getCheckOrderPay().getOrderAmount() == null || payParam.getCheckOrderPay().getOrderAmount().compareTo(BigDecimal.ZERO) <= 0) {
throw new CzgException("支付金额不合法");
}
orderInfo = orderInfoService.createPayOrder(payParam.getShopId(), payParam.getCheckOrderPay().getOrderAmount(),
orderInfo = orderInfoCustomService.createPayOrder(payParam.getShopId(), payParam.getCheckOrderPay().getOrderAmount(),
payParam.getCheckOrderPay().getRemark());
} else {
orderInfo = orderInfoService.getById(payParam.getCheckOrderPay().getOrderId());
@@ -403,7 +405,7 @@ public class PayServiceImpl implements PayService {
CzgResult<Map<String, Object>> mapCzgResult = microPay(payParam.getShopId(), new CzgMicroPayReq(payOrderNo, orderInfo.getOrderAmount().multiply(MONEY_RATE).longValue(),
"点餐支付", payParam.getAuthCode(), payParam.getBuyerRemark(), ""));
if (mapCzgResult.getCode() == 200) {
orderInfoService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
orderInfoCustomService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
LocalDateTime.now(), paymentId, PayEnums.BACK_SCAN);
} else {
upOrderPayInfo(orderInfo.getId(), PayEnums.BACK_SCAN, paymentId,
@@ -860,7 +862,7 @@ public class PayServiceImpl implements PayService {
if (paymentId == null) {
throw new CzgException("未获取到支付记录");
}
orderInfoService.updatePayOrderId(orderId, paymentId, payType.getValue(), remark);
orderInfoCustomService.updatePayOrderId(orderId, paymentId, payType.getValue(), remark);
}