修改会员点单信息

This commit is contained in:
SongZhang 2024-09-29 10:40:42 +08:00
parent 29d09abd5f
commit 185b50a84e
8 changed files with 118 additions and 120 deletions

View File

@ -31,4 +31,12 @@ public interface RabbitConstants {
// 排队小票打印
String QUEUE_PRINT_CALL_TABLE = "queue.print.call.table";
String ROUTING_KEY_CALL_TABLE = "routing.call.table";
// 会员余额记录
String EXCHANGE_BALANCE = "balance_put";
String ROUTING_KEY_BALANCE = "balance_routingkey_put";
// 耗材
String EXCHANGE_CONS = "cons_collect_put";
String ROUTING_KEY_CONS = "cons_collect_routingkey_put";
}

View File

@ -10,7 +10,6 @@ import javax.validation.constraints.NotNull;
public class UpdateVipDTO {
@NotNull
private Integer shopId;
@NotEmpty
private String tableId;
@NotNull
private String masterId;

View File

@ -0,0 +1,8 @@
package cn.ysk.cashier.mybatis.mapper;
import cn.ysk.cashier.pojo.product.TbProductStockDetail;
import cn.ysk.cashier.pojo.shop.TbShopTable;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface MpProductStockDetailMapper extends BaseMapper<TbProductStockDetail> {
}

View File

@ -0,0 +1,8 @@
package cn.ysk.cashier.mybatis.mapper;
import cn.ysk.cashier.pojo.shop.TbShopInfo;
import cn.ysk.cashier.pojo.shop.TbShopUnit;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface MpShopUnitMapper extends BaseMapper<TbShopUnit> {
}

View File

@ -27,4 +27,7 @@ public interface TbProducSkutMapper extends BaseMapper<TbProductSku> {
@Update("update tb_product_sku set stock_number=stock_number-#{num} WHERE id=#{id} ")
int decrStockUnCheck(String id, int num);
@Update("update tb_product_sku set real_sales_number=real_sales_number-#{num} WHERE id=#{skuId}")
int decrRealSalesNumber(@Param("skuId") Integer skuId, @Param("num") Integer num);
}

View File

@ -570,7 +570,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
baObj.put("balance", user.getAmount());
baObj.put("type", "退款");
baObj.put("time", flow.getCreateTime());
// rabbitMsgUtils.
rabbitMsgUtils.addBalanceRecord(baObj);
// producer.balance(baObj.toString());
}
}

View File

@ -23,6 +23,7 @@ import cn.ysk.cashier.pojo.order.TbOrderDetail;
import cn.ysk.cashier.pojo.order.TbOrderInfo;
import cn.ysk.cashier.pojo.product.TbProduct;
import cn.ysk.cashier.pojo.product.TbProductSku;
import cn.ysk.cashier.pojo.product.TbProductStockDetail;
import cn.ysk.cashier.pojo.shop.*;
import cn.ysk.cashier.repository.TbShopPayTypeRepository;
import cn.ysk.cashier.repository.order.TbCashierCartRepository;
@ -95,6 +96,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
private final MpShopTableMapper mpShopTableMapper;
private final TbShopPayTypeMapper tbShopPayTypeMapper;
private final MpShopTableService mpShopTableService;
private final MpShopUnitMapper mpShopUnitMapper;
private final MpProductStockDetailMapper mpProductStockDetailMapper;
@Value("${thirdPay.payType}")
private String thirdPayType;
@ -1609,19 +1612,35 @@ public class TbShopTableServiceImpl implements TbShopTableService {
}
@Override
public Object updateVip(UpdateVipDTO updateVipDTO) {
LambdaUpdateWrapper<TbCashierCart> queryWrapper = new LambdaUpdateWrapper<>();
queryWrapper.eq(TbCashierCart::getTableId, updateVipDTO.getTableId())
.eq(TbCashierCart::getMasterId, updateVipDTO.getMasterId())
.eq(TbCashierCart::getShopId, updateVipDTO.getShopId());
public Object updateVip(UpdateVipDTO updateVipDTO) {
ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(updateVipDTO.getShopId(), updateVipDTO.getTableId());
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
.in(TbCashierCart::getStatus, "create", "return")
.eq(TbCashierCart::getShopId, updateVipDTO.getShopId())
.eq(TbCashierCart::getUseType, shopEatTypeInfoDTO.getUseType())
.and(q -> q.eq(TbCashierCart::getMasterId, updateVipDTO.getMasterId()).or().isNull(TbCashierCart::getMasterId));
if (updateVipDTO.getType().equals(0)) {
queryWrapper.set(TbCashierCart::getUserId, null);
queryWrapper.eq(TbCashierCart::getUserId, updateVipDTO.getVipUserId());
if (!shopEatTypeInfoDTO.isTakeout()) {
queryWrapper.eq(TbCashierCart::getTableId, updateVipDTO.getTableId());
} else {
queryWrapper.set(TbCashierCart::getUserId, updateVipDTO.getVipUserId());
queryWrapper.and(q -> q.isNull(TbCashierCart::getTableId).or().eq(TbCashierCart::getTableId, ""))
.in(TbCashierCart::getPlatformType, OrderPlatformTypeEnum.PC.getValue(), OrderPlatformTypeEnum.CASH.getValue());
}
return cashierCartMapper.update(null, queryWrapper);
List<TbCashierCart> tbCashierCarts = cashierCartMapper.selectList(queryWrapper.isNotNull(TbCashierCart::getOrderId));
if (!tbCashierCarts.isEmpty()) {
Integer orderId = tbCashierCarts.get(0).getOrderId();
if (updateVipDTO.getType() == 0) {
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getId, orderId)
.set(TbOrderInfo::getUserId, updateVipDTO.getVipUserId()));
}else {
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getId, orderId)
.set(TbOrderInfo::getUserId, null));
}
}
return true;
}
@ -1946,9 +1965,46 @@ public class TbShopTableServiceImpl implements TbShopTableService {
returnOrder.setSource(oldOrderInfo.getId());
orderInfoMapper.insert(returnOrder);
updateStockAndRecord(detailList);
return returnOrder;
}
private void updateStockAndRecord(List<TbOrderDetail> orderDetailList) {
// 更新商品库存
for (TbOrderDetail detail : orderDetailList) {
TbProductSku productSku = producSkutMapper.selectById(detail.getProductSkuId());
TbProduct product = productMapper.selectById(detail.getProductId());
TbProductStockDetail tbProductStockDetail = new TbProductStockDetail();
tbProductStockDetail.setCreatedAt(System.currentTimeMillis());
tbProductStockDetail.setUpdatedAt(System.currentTimeMillis());
tbProductStockDetail.setShopId(detail.getShopId().toString());
tbProductStockDetail.setSourcePath("NORMAL");
tbProductStockDetail.setType("退单");
tbProductStockDetail.setSubType(1);
tbProductStockDetail.setRemark("退单: " + detail.getOrderId());
tbProductStockDetail.setOrderId(String.valueOf(detail.getOrderId()));
if (ObjectUtil.isNotEmpty(product)) {
TbShopUnit shopUnit = mpShopUnitMapper.selectById(product.getUnitId());
tbProductStockDetail.setProductName(product.getName());
tbProductStockDetail.setIsStock(product.getIsStock());
tbProductStockDetail.setStockSnap(product.getSelectSpec());
tbProductStockDetail.setUnitName(shopUnit.getName());
tbProductStockDetail.setProductId(product.getId().toString());
productMapper.incrStock(product.getId(), detail.getNum());
tbProductStockDetail.setLeftNumber(product.getStockNumber());
tbProductStockDetail.setStockNumber(Double.valueOf(detail.getNum()));
producSkutMapper.decrRealSalesNumber(productSku.getId(), detail.getNum());
}
mpProductStockDetailMapper.insert(tbProductStockDetail);
}
}
@Override
public Object returnOrder(ReturnOrderDTO returnOrderDTO) {
@ -1970,118 +2026,25 @@ public class TbShopTableServiceImpl implements TbShopTableService {
}
TbOrderInfo returnOrderInfo = updateReturnOrderInfo(returnOrderDTO, orderInfo, true);
String merchantId = orderInfo.getMerchantId();
String shopId = orderInfo.getShopId();
String day = DateUtils.getDay();
String masterId = orderInfo.getMasterId();
String payType = orderInfo.getPayType();
BigDecimal orderAmount = orderInfo.getPayAmount();
BigDecimal returnAmount = BigDecimal.ZERO;
BigDecimal packAMount = BigDecimal.ZERO;
BigDecimal saleAmount = BigDecimal.ZERO;
BigDecimal feeAmount = BigDecimal.ZERO;
BigDecimal payAmount = BigDecimal.ZERO;
// // 线上退款
// if ("scanCode".equals(payType) || "wx_lite".equals(payType)) {
// payService.returnOrder(Integer.valueOf(shopId), orderInfo, returnOrderInfo);
//
// // 储值卡支付退款
// } else if ("deposit".equals(payType)) {
// orderInfoService.depositReturn();
//
//
// }
// //添加退单数据
//
// //更新子单表
// if (ObjectUtil.isNotEmpty(detailPos) && detailPos.size() > 0) {
// tbOrderDetailMapper.updateBatchOrderDetail(detailPos);
// }
//
// //添加子表信息
// if (ObjectUtil.isNotEmpty(returnDetail) && returnDetail.size() > 0) {
// tbOrderDetailMapper.batchInsert(returnDetail, newOrderInfo.getId().toString());
// }
//
//
// JSONObject jsonObject = new JSONObject();
// jsonObject.put("token", token);
// jsonObject.put("type", "return");
// jsonObject.put("orderId", 0);
// jsonObject.put("amount", newOrderInfo.getPayAmount());
//// jsonObject.put("data",new ReturnWTZInfo(orderId+"",newOrderInfo.getPayAmount(),details));
// producer.putOrderCollect(jsonObject.toJSONString());
//
//
if ("scanCode".equals(payType) || "wx_lite".equals(payType)) {
payService.returnOrder(Integer.valueOf(shopId), orderInfo, returnOrderInfo);
// 储值卡支付退款
} else if ("deposit".equals(payType)) {
orderInfoService.depositReturn(Integer.valueOf(orderInfo.getUserId()), Integer.valueOf(orderInfo.getShopId()), returnOrderInfo.getRefundAmount());
}
// 打印退款小票
// producer.printMechine(newOrderInfo.getId().toString());
//
//
// //修改耗材数据
// JSONObject jsonObject1 = new JSONObject();
// jsonObject1.put("orderId", newOrderInfo.getId());
// jsonObject1.put("type", "delete");
// producer.cons(jsonObject1.toString());
//
// // 更新商品库存
// for (TbOrderDetail detail : returnDetail) {
// detail = tbOrderDetailMapper.selectByPrimaryKey(detail.getId());
//
// TbProductSku productSku = productSkuMapper.selectByPrimaryKey(detail.getProductSkuId());
// TbProductWithBLOBs product = productMapper.selectByPrimaryKey(detail.getProductId());
//
// TbProductStockDetail tbProductStockDetail = new TbProductStockDetail();
// tbProductStockDetail.setCreatedAt(System.currentTimeMillis());
// tbProductStockDetail.setUpdatedAt(System.currentTimeMillis());
// tbProductStockDetail.setShopId(detail.getShopId().toString());
// tbProductStockDetail.setSourcePath("NORMAL");
// tbProductStockDetail.setType("退单");
// tbProductStockDetail.setSubType((byte) 1);
// tbProductStockDetail.setRemark("退单: " + detail.getOrderId());
// tbProductStockDetail.setOrderId(String.valueOf(detail.getOrderId()));
//
// if (ObjectUtil.isNotEmpty(product)) {
// TbShopUnit shopUnit = shopUnitMapper.selectByPrimaryKey(Integer.valueOf(product.getUnitId()));
//
// tbProductStockDetail.setProductName(product.getName());
// tbProductStockDetail.setIsStock(product.getIsStock());
// tbProductStockDetail.setStockSnap(product.getSelectSpec());
// tbProductStockDetail.setUnitName(shopUnit.getName());
// tbProductStockDetail.setProductId(product.getId().toString());
//
// if (product.getIsDistribute() == 1) {
//// redisUtil.seckill(RedisCst.PRODUCT + shopId.toString() + ":product" + product.getId().toString(), String.valueOf(detail.getReturnNum() + product.getStockNumber().intValue()));
// productMapper.updateStockById(product.getId(), detail.getReturnNum() * -1);
//
// tbProductStockDetail.setLeftNumber(product.getStockNumber());
// tbProductStockDetail.setStockNumber(Double.valueOf(detail.getReturnNum()));
// } else {
// if (ObjectUtil.isNotEmpty(productSku)) {
//// redisUtil.seckill(RedisCst.PRODUCT + shopId.toString() + ":" + productSku.getId().toString(), String.valueOf(detail.getReturnNum() + productSku.getStockNumber().intValue()));
// productSkuMapper.updateByskuIdSub(productSku.getId(), detail.getReturnNum() * -1);
//
// tbProductStockDetail.setSkuId(productSku.getId().toString());
// tbProductStockDetail.setLeftNumber(productSku.getStockNumber().intValue());
// tbProductStockDetail.setStockNumber(Double.valueOf(detail.getReturnNum()));
// }
// }
// productSkuMapper.decrRealSalesNumber(productSku.getId(), detail.getReturnNum());
// }
//
// productStockDetailMapper.insert(tbProductStockDetail);
// }
// 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);
return null;
//修改耗材数据
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("orderId", returnOrderInfo.getId());
jsonObject1.put("type", "delete");
rabbitMsgUtils.updateCons(jsonObject1);
return true;
}
}

View File

@ -79,4 +79,13 @@ public class RabbitMsgUtils implements RabbitTemplate.ConfirmCallback {
printDTO.setShopId(shopId);
sendMsg(RabbitConstants.EXCHANGE_PRINT, RabbitConstants.ROUTING_KEY_CALL_TABLE, printDTO, "排号小票打印", true);
}
public void addBalanceRecord(JSONObject baObj) {
sendMsg(RabbitConstants.EXCHANGE_BALANCE, RabbitConstants.ROUTING_KEY_BALANCE, baObj, "储值卡记录", true);
}
public void updateCons(JSONObject jsonObject1) {
sendMsg(RabbitConstants.EXCHANGE_CONS, RabbitConstants.ROUTING_KEY_CONS, jsonObject1, "储值卡记录", true);
}
}