修改篮球入场支付方式

This commit is contained in:
limqhz
2023-12-29 18:02:14 +08:00
parent b60a570dd8
commit a304d49cb4
7 changed files with 49 additions and 25 deletions

View File

@@ -210,11 +210,22 @@ public class VenueController extends BaseApiController {
*/ */
@RequestMapping(value = "/venue/basketball/pay", method = RequestMethod.POST) @RequestMapping(value = "/venue/basketball/pay", method = RequestMethod.POST)
@AccessToken @AccessToken
public ResponseDTO recharge(@RequestParam("rechargeId") Integer rechargeId){ public ResponseDTO recharge(@RequestParam("venueId") Integer venueId){
Venue venue = new Venue(); Device byDevice = deviceService.findByDevice(venueId);
// TODO BasketEnterResult join = new BasketEnterResult();
if (byDevice == null) {
join.setFlg(999);
join.setMsg("通讯异常,门禁设备离线中");
return ResponseDTO.ok().addAttribute("join", join);
}
String doorSn = byDevice.getName();
boolean lockStat = doorLockUtil.checkDoorLock(doorSn);
if (lockStat) {
throw new ServiceException("有人正在使用门禁,请稍后再试");
}
Integer memberId = getMemberIdByAccessToken();
return ResponseDTO.ok(). return ResponseDTO.ok().
addAttribute("pay",orderService.createEnterVenueOrder(venue,getLoginMemberId(), PayTypeEnum.WEI_XIN,new BigDecimal(10))); addAttribute("pay",orderService.createEnterVenueOrder(venueId, memberId, PayTypeEnum.WEI_XIN,new BigDecimal(10)));
} }
} }

View File

@@ -1,6 +1,7 @@
package com.sv.dto; package com.sv.dto;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
public class BasketEnterResult implements Serializable { public class BasketEnterResult implements Serializable {
/** /**
@@ -10,6 +11,16 @@ public class BasketEnterResult implements Serializable {
private String msg; private String msg;
private BigDecimal money;
public BigDecimal getMoney() {
return money;
}
public void setMoney(BigDecimal money) {
this.money = money;
}
public Integer getFlg() { public Integer getFlg() {
return flg; return flg;
} }

View File

@@ -181,7 +181,7 @@ public class MemberCardOrderService extends BaseServiceImpl {
// memberCardService.createCard(order,totalPrice); // memberCardService.createCard(order,totalPrice);
// 4.调支付 // 4.调支付
OrderPaySignResponse.WechatPayParam wechatPayParam = createUnifiedOrder(order.getOrderSn(), memberId,ip); OrderPaySignResponse.WechatPayParam wechatPayParam = createUnifiedOrder(order.getOrderSn(), memberId,ip,"购买商品");
return wechatPayParam; return wechatPayParam;
} }
@@ -220,12 +220,12 @@ public class MemberCardOrderService extends BaseServiceImpl {
* @return * @return
*/ */
@Transactional @Transactional
public OrderPaySignResponse.WechatPayParam createUnifiedOrder(String orderSn, Integer memberId, String ip) { public OrderPaySignResponse.WechatPayParam createUnifiedOrder(String orderSn, Integer memberId, String ip,String orderTitle) {
Order order = orderService.findOrderSn(orderSn, memberId); Order order = orderService.findOrderSn(orderSn, memberId);
if (order == null){ if (order == null){
throw new ServiceException(com.sv.exception.api.ExceptionCodeTemplate.ORDER_ERROR); throw new ServiceException(com.sv.exception.api.ExceptionCodeTemplate.ORDER_ERROR);
} }
return wechatPayService.createUnifiedOrder(orderSn, order.getPrice(), ip, "JSAPI", memberId); return wechatPayService.createUnifiedOrder(orderSn, order.getPrice(), ip, memberId,orderTitle);
} }
/** /**

View File

@@ -287,7 +287,7 @@ public class MemberLessonTicketService extends BaseServiceImpl {
memberService.updateMoney(memberId, order.getPrice().negate()); memberService.updateMoney(memberId, order.getPrice().negate());
paySuccess(order); paySuccess(order);
} else { } else {
wechatPayParam = memberCardOrderService.createUnifiedOrder(order.getOrderSn(), memberId, ip); wechatPayParam = memberCardOrderService.createUnifiedOrder(order.getOrderSn(), memberId, ip,"购买商品");
} }
} }
redisLock.unlock(); redisLock.unlock();

View File

@@ -10,6 +10,7 @@ import com.sv.dto.api.wechat.OrderPaySignResponse;
import com.sv.entity.*; import com.sv.entity.*;
import com.sv.exception.api.ExceptionCodeTemplate; import com.sv.exception.api.ExceptionCodeTemplate;
import com.sv.mapper.OrderMapper; import com.sv.mapper.OrderMapper;
import com.sv.mapper.VenueMapper;
import com.sv.service.api.config.WechatPayService; import com.sv.service.api.config.WechatPayService;
import com.ydd.framework.core.common.Pagination; import com.ydd.framework.core.common.Pagination;
import com.ydd.framework.core.exception.ServiceException; import com.ydd.framework.core.exception.ServiceException;
@@ -44,6 +45,8 @@ public class OrderService extends BaseServiceImpl {
@Resource @Resource
private OrderMapper orderMapper; private OrderMapper orderMapper;
@Resource @Resource
private VenueMapper venueMapper;
@Resource
private WechatPayService wechatPayService; private WechatPayService wechatPayService;
@Resource @Resource
private RechargeService rechargeService; private RechargeService rechargeService;
@@ -224,7 +227,7 @@ public class OrderService extends BaseServiceImpl {
orderMapper.insert(order); orderMapper.insert(order);
// 调微信 // 调微信
OrderPaySignResponse.WechatPayParam wechatPayParam = memberCardOrderService.createUnifiedOrder(order.getOrderSn(), memberId,ip); OrderPaySignResponse.WechatPayParam wechatPayParam = memberCardOrderService.createUnifiedOrder(order.getOrderSn(), memberId,ip,"余额充值");
return wechatPayParam; return wechatPayParam;
} }
@@ -240,12 +243,14 @@ public class OrderService extends BaseServiceImpl {
/** /**
* 生成进场订单 * 生成进场订单
* @param venue
* @param memberId * @param memberId
* @return * @return
*/ */
@Deprecated public OrderPaySignResponse.WechatPayParam createEnterVenueOrder(Integer venueId, Integer memberId,PayTypeEnum payTypeEnum,BigDecimal price){
public String createEnterVenueOrder(Venue venue, Integer memberId,PayTypeEnum payTypeEnum,BigDecimal price){ Venue venue = venueMapper.findById(venueId);
if (venue == null) {
throw new ServiceException("未找到该场馆");
}
//创建订单 //创建订单
Order order = new Order(); Order order = new Order();
order.setOrderSn(createSn()); order.setOrderSn(createSn());
@@ -257,15 +262,12 @@ public class OrderService extends BaseServiceImpl {
order.setPlatformId(venue.getPlatformId()); order.setPlatformId(venue.getPlatformId());
order.setMemberId(memberId); order.setMemberId(memberId);
orderMapper.insert(order); orderMapper.insert(order);
//扣除用户余额 目前篮球订单不支持余额支付
//扣除用户余额 // if(payTypeEnum.value.equals(PayTypeEnum.BALANCE.value)) {
if(payTypeEnum.value.equals(PayTypeEnum.BALANCE.value)) { // memberMoneyLogService.create(memberId, venue.getPlatformId(), MoneyLogEnum.JOIN.value, price.negate(), PayTypeEnum.BALANCE.value, null, venue.getId(), venue.getType(), null);
memberMoneyLogService.create(memberId, venue.getPlatformId(), MoneyLogEnum.JOIN.value, price.negate(), PayTypeEnum.BALANCE.value, null, venue.getId(), venue.getType(), null); // }
} OrderPaySignResponse.WechatPayParam wechatPayParam = memberCardOrderService.createUnifiedOrder(order.getOrderSn(), memberId,"ip","入场结算订单");
//TODO 调用微信支付 不用这个方法,需要新增方法,把商品的信息进行调整 最好有空把充值的内容也更新一下 return wechatPayParam;
OrderPaySignResponse.WechatPayParam wechatPayParam = memberCardOrderService.createUnifiedOrder(order.getOrderSn(), memberId,"ip");
return order.getOrderSn();
} }
} }

View File

@@ -57,7 +57,7 @@ public class WechatPayService extends BaseServiceImpl {
* @return * @return
*/ */
@Transactional @Transactional
public OrderPaySignResponse.WechatPayParam createUnifiedOrder(String orderSn, BigDecimal money, String ip, String tradeType, Integer memberId) { public OrderPaySignResponse.WechatPayParam createUnifiedOrder(String orderSn, BigDecimal money, String ip, Integer memberId, String orderTitle) {
OrderPaySignResponse.WechatPayParam wechatPayParam; OrderPaySignResponse.WechatPayParam wechatPayParam;
try { try {
// 设置过期时间 // 设置过期时间
@@ -73,7 +73,7 @@ public class WechatPayService extends BaseServiceImpl {
weChatPayHelper.setMchId(payConfig.getMchId()); weChatPayHelper.setMchId(payConfig.getMchId());
weChatPayHelper.setKey(payConfig.getKey()); weChatPayHelper.setKey(payConfig.getKey());
weChatPayHelper.setParameter("nonce_str", nonceStr); weChatPayHelper.setParameter("nonce_str", nonceStr);
weChatPayHelper.setParameter("body", "购买商品"); weChatPayHelper.setParameter("body", orderTitle);
weChatPayHelper.setParameter("detail", "商品"); weChatPayHelper.setParameter("detail", "商品");
weChatPayHelper.setParameter("out_trade_no", orderSn); weChatPayHelper.setParameter("out_trade_no", orderSn);
String payMoney = money.multiply(new BigDecimal(100)) String payMoney = money.multiply(new BigDecimal(100))
@@ -82,7 +82,7 @@ public class WechatPayService extends BaseServiceImpl {
weChatPayHelper.setParameter("spbill_create_ip", ip); weChatPayHelper.setParameter("spbill_create_ip", ip);
weChatPayHelper.setParameter("time_start", DateFormatUtils.format(current, "yyyyMMddHHmmss")); weChatPayHelper.setParameter("time_start", DateFormatUtils.format(current, "yyyyMMddHHmmss"));
weChatPayHelper.setParameter("notify_url", payConfig.getNotifyUrl()); weChatPayHelper.setParameter("notify_url", payConfig.getNotifyUrl());
weChatPayHelper.setParameter("trade_type", tradeType); weChatPayHelper.setParameter("trade_type", "JSAPI"); // 目前写死
//使用公众号的appid //使用公众号的appid
MemberAuth memberAuth = memberAuthService.findByMemberId(memberId); MemberAuth memberAuth = memberAuthService.findByMemberId(memberId);
weChatPayHelper.setParameter("openid", memberAuth.getAuthId()); weChatPayHelper.setParameter("openid", memberAuth.getAuthId());