feat: 余额充值增加霸王餐选项

This commit is contained in:
2024-10-26 15:52:46 +08:00
parent ca28f90260
commit dbebe6d862
2 changed files with 111 additions and 77 deletions

View File

@@ -57,7 +57,8 @@ public class NotifyController {
if("TRADE_SUCCESS".equals(object.get("state").toString())){ if("TRADE_SUCCESS".equals(object.get("state").toString())){
String orderNo=object.get("mchOrderNo").toString(); String orderNo=object.get("mchOrderNo").toString();
String tradeNo=object.get("payOrderId").toString(); String tradeNo=object.get("payOrderId").toString();
return payService.fstMemberInSuccess(orderNo,tradeNo); String payType=object.getStr("payType");
return payService.fstMemberInSuccess(orderNo,tradeNo, payType);
} }
} }
} }

View File

@@ -1078,7 +1078,7 @@ public class PayService {
String orderNo = DateUtils.getsdfTimesSS(); String orderNo = DateUtils.getsdfTimesSS();
PublicResp<WxScanPayResp> publicResp = thirdPayService PublicResp<WxScanPayResp> publicResp = thirdPayService
.scanpay(thirdUrl, thirdApply.getAppId(), .scanpay(thirdUrl, thirdApply.getAppId(),
"会员充值", "会员充值", new BigDecimal(amount).setScale(2, BigDecimal.ROUND_DOWN) "会员充值", "会员充值", payAmount
.multiply(new BigDecimal(100)).longValue(), "WECHAT", .multiply(new BigDecimal(100)).longValue(), "WECHAT",
thirdApply.getSmallAppid(), memberInDTO.getOpenId(), ip, orderNo, thirdApply.getStoreId(), thirdApply.getSmallAppid(), memberInDTO.getOpenId(), ip, orderNo, thirdApply.getStoreId(),
callInBack, null, thirdApply.getAppToken()); callInBack, null, thirdApply.getAppToken());
@@ -1168,16 +1168,13 @@ public class PayService {
} }
@Transactional(rollbackFor = Exception.class) /**
public String callBackPayFST(String payOrderNO,String payType) { * 订单支付成功修改订单和子单状态
TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPayOrderNo(payOrderNO); * @param orderInfo 订单信息
if (ObjectUtil.isEmpty(orderInfo)) { * @param payType 支付平台
return "订单信息不存在"; * @param payOrderNO 三方支付订单号
} */
private void orderSuccessPay(TbOrderInfo orderInfo, String payType, String payOrderNO) {
if ("paying".equals(orderInfo.getStatus())) {
int cartCount = mpCashierCartMapper.update(null, new LambdaUpdateWrapper<TbCashierCart>() int cartCount = mpCashierCartMapper.update(null, new LambdaUpdateWrapper<TbCashierCart>()
.eq(TbCashierCart::getOrderId, orderInfo.getId()) .eq(TbCashierCart::getOrderId, orderInfo.getId())
.eq(TbCashierCart::getUseType, orderInfo.getUseType()) .eq(TbCashierCart::getUseType, orderInfo.getUseType())
@@ -1186,7 +1183,6 @@ public class PayService {
log.info("更新购物车:{}", cartCount); log.info("更新购物车:{}", cartCount);
//更新子单状态 //更新子单状态
mpOrderDetailMapper.update(null, new LambdaUpdateWrapper<TbOrderDetail>().eq(TbOrderDetail::getOrderId, orderInfo.getId()) mpOrderDetailMapper.update(null, new LambdaUpdateWrapper<TbOrderDetail>().eq(TbOrderDetail::getOrderId, orderInfo.getId())
.eq(TbOrderDetail::getUseType, orderInfo.getUseType()) .eq(TbOrderDetail::getUseType, orderInfo.getUseType())
.in(TbOrderDetail::getStatus, "unpaid") .in(TbOrderDetail::getStatus, "unpaid")
@@ -1208,10 +1204,9 @@ public class PayService {
jsonObject.put("token", 0); jsonObject.put("token", 0);
jsonObject.put("type", "wxcreate"); jsonObject.put("type", "wxcreate");
jsonObject.put("orderId", orderInfo.getId().toString()); jsonObject.put("orderId", orderInfo.getId().toString());
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
log.info("发送打印数据"); log.info("发送订单打印数据");
ShopEatTypeInfoDTO shopEatTypeInfoDTO = shopUtils.checkEatModel(orderInfo.getTableId(), orderInfo.getShopId()); ShopEatTypeInfoDTO shopEatTypeInfoDTO = shopUtils.checkEatModel(orderInfo.getTableId(), orderInfo.getShopId());
List<TbOrderDetail> detailList = mpOrderDetailMapper.selectList(new LambdaQueryWrapper<TbOrderDetail>() List<TbOrderDetail> detailList = mpOrderDetailMapper.selectList(new LambdaQueryWrapper<TbOrderDetail>()
.eq(TbOrderDetail::getOrderId, orderInfo.getId()) .eq(TbOrderDetail::getOrderId, orderInfo.getId())
@@ -1251,6 +1246,18 @@ public class PayService {
mpShopTableService.updateStateByQrcode(orderInfo.getTableId(), TableConstant.ShopTable.State.CLEANING); mpShopTableService.updateStateByQrcode(orderInfo.getTableId(), TableConstant.ShopTable.State.CLEANING);
} }
} }
}
@Transactional(rollbackFor = Exception.class)
public String callBackPayFST(String payOrderNO,String payType) {
TbOrderInfo orderInfo = tbOrderInfoMapper.selectByPayOrderNo(payOrderNO);
if (ObjectUtil.isEmpty(orderInfo)) {
return "订单信息不存在";
}
if ("paying".equals(orderInfo.getStatus())) {
orderSuccessPay(orderInfo, payType, payOrderNO);
return "SUCCESS"; return "SUCCESS";
} }
@@ -1499,7 +1506,29 @@ public class PayService {
} }
public String fstMemberInSuccess(String payOrderNO, String tradeNo) { /**
* 检查充值回调是否是霸王餐活动
* @param memberIn 充值记录
* @param payType 支付平台
* @param payOrderNo 三方交易订单号
*/
private void checkFreeDineForMemberInCallBack(TbMemberIn memberIn, String payType, String payOrderNo) {
// 判断是否是霸王餐充值活动
if (memberIn.getOrderId() != null) {
TbOrderInfo orderInfo = mpOrderInfoMapper.selectById(memberIn.getOrderId());
if (orderInfo == null) {
log.error("订单信息不存在: orderId: {}", memberIn.getOrderId());
return;
}
if (TableConstant.OrderInfo.Status.CLOSED.getValue().equals(orderInfo.getStatus())) {
log.error("订单状态异常: {}", orderInfo);
}
// 更改订单状态
orderSuccessPay(orderInfo, payType, payOrderNo);
}
}
public String fstMemberInSuccess(String payOrderNO, String tradeNo, String payType) {
TbMemberIn memberIn = tbMemberInMapper.selectByOrderNo(payOrderNO); TbMemberIn memberIn = tbMemberInMapper.selectByOrderNo(payOrderNO);
if (ObjectUtil.isEmpty(memberIn)) { if (ObjectUtil.isEmpty(memberIn)) {
return "充值记录不存在"; return "充值记录不存在";
@@ -1545,6 +1574,10 @@ public class PayService {
flow.setRemark(payOrderNO); flow.setRemark(payOrderNO);
flow.setIsReturn("0"); flow.setIsReturn("0");
tbShopUserFlowMapper.insert(flow); tbShopUserFlowMapper.insert(flow);
// 校验霸王餐
checkFreeDineForMemberInCallBack(memberIn, payType, payOrderNO);
//会员活动 //会员活动
BigDecimal awardAmount = giveActivate(tbShopUser, memberIn.getAmount(), flow.getId()); BigDecimal awardAmount = giveActivate(tbShopUser, memberIn.getAmount(), flow.getId());
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();