1. 购买优惠券调整,先调预支付,回调接口中处理逻辑
This commit is contained in:
parent
d20eb67955
commit
e06236c512
|
@ -1291,14 +1291,14 @@ public class AppVerifyController extends BaseController
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 优惠券购买
|
* 优惠券购买(预支付)
|
||||||
*/
|
*/
|
||||||
@GetMapping("/coupon/buy")
|
@GetMapping("/coupon/buy")
|
||||||
public AjaxResult couponBuy(Long userId, Long couponId)
|
public AjaxResult couponBuy(Long userId, Long couponId)
|
||||||
{
|
{
|
||||||
logger.info("优惠券购买:【userId="+userId+"】,【couponId="+couponId+"】");
|
logger.info("优惠券购买:【userId="+userId+"】,【couponId="+couponId+"】");
|
||||||
Boolean result =etCouponService.couponBuy(userId, couponId);
|
PrepayWithRequestPaymentResponse paymentResponse = etCouponService.couponBuy(userId, couponId);
|
||||||
return success(result);
|
return success(paymentResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -66,6 +66,10 @@ public class EtOrder extends BaseEntity
|
||||||
@Excel(name = "计费规则")
|
@Excel(name = "计费规则")
|
||||||
private Long ruleId;
|
private Long ruleId;
|
||||||
|
|
||||||
|
/** 优惠券id */
|
||||||
|
@Excel(name = "优惠券id")
|
||||||
|
private Long couponId;
|
||||||
|
|
||||||
/** 套餐对象 */
|
/** 套餐对象 */
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private EtFeeRule rule;
|
private EtFeeRule rule;
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.ruoyi.system.service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.ruoyi.system.domain.EtCoupon;
|
import com.ruoyi.system.domain.EtCoupon;
|
||||||
|
import com.wechat.pay.java.service.payments.jsapi.model.PrepayWithRequestPaymentResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 优惠券Service接口
|
* 优惠券Service接口
|
||||||
|
@ -65,5 +66,5 @@ public interface IEtCouponService
|
||||||
* @param couponId
|
* @param couponId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Boolean couponBuy(Long userId, Long couponId);
|
PrepayWithRequestPaymentResponse couponBuy(Long userId, Long couponId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,13 @@ public interface IWxPayService {
|
||||||
*/
|
*/
|
||||||
PrepayWithRequestPaymentResponse prepayWithRequestPayment(String payType, EtOrder order);
|
PrepayWithRequestPaymentResponse prepayWithRequestPayment(String payType, EtOrder order);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成微信预支付订单(优惠券)
|
||||||
|
* @param order 平台订单
|
||||||
|
* @return JSAPI调用
|
||||||
|
*/
|
||||||
|
PrepayWithRequestPaymentResponse prepayWithRequestPayment(EtOrder order);
|
||||||
|
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * 关闭订单
|
// * 关闭订单
|
||||||
|
|
|
@ -48,10 +48,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
@ -125,7 +122,10 @@ public class CallbackServiceImpl implements CallbackService {
|
||||||
private CallbackService callbackService;
|
private CallbackService callbackService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private EtModelMapper etModelMapper;
|
private EtCouponMapper etCouponMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private EtCouponClaimLogMapper etCouponClaimLogMapper;
|
||||||
|
|
||||||
@Value("${aliyun.accessKeyId}")
|
@Value("${aliyun.accessKeyId}")
|
||||||
private String accessKeyId;
|
private String accessKeyId;
|
||||||
|
@ -245,6 +245,14 @@ public class CallbackServiceImpl implements CallbackService {
|
||||||
order.setMark("取消预约支付");
|
order.setMark("取消预约支付");
|
||||||
asDevice.setStatus(ServiceConstants.VEHICLE_STATUS_NORMAL);//取消预约支付后车辆正常运营
|
asDevice.setStatus(ServiceConstants.VEHICLE_STATUS_NORMAL);//取消预约支付后车辆正常运营
|
||||||
asDevice.setLockStatus(ServiceConstants.LOCK_STATUS_CLOSE);
|
asDevice.setLockStatus(ServiceConstants.LOCK_STATUS_CLOSE);
|
||||||
|
}else if(attachVo.getType().equals(ServiceConstants.ORDER_TYPE_COUPON)){
|
||||||
|
/** 优惠券订单 */
|
||||||
|
logger.info("【微信支付回调】优惠券支付");
|
||||||
|
// 3-优惠券支付
|
||||||
|
order.setStatus(ServiceConstants.ORDER_STATUS_ORDER_END);
|
||||||
|
order.setMark("优惠券支付");
|
||||||
|
// 优惠券成功处理逻辑
|
||||||
|
couponSuccessHandle(order);
|
||||||
}else if(attachVo.getType().equals(ServiceConstants.BUSINESS_TYPE_DEPOSIT)){
|
}else if(attachVo.getType().equals(ServiceConstants.BUSINESS_TYPE_DEPOSIT)){
|
||||||
logger.info("【微信支付回调】押金支付");
|
logger.info("【微信支付回调】押金支付");
|
||||||
// 4-押金支付
|
// 4-押金支付
|
||||||
|
@ -289,6 +297,56 @@ public class CallbackServiceImpl implements CallbackService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void couponSuccessHandle(EtOrder order) {
|
||||||
|
/**
|
||||||
|
* 购买分为抵用券订单,会员卡订单、折扣卡订单
|
||||||
|
* 1. 插入一条记录,et_coupon_user_log 获取方式是购买
|
||||||
|
* 2. 增加订单记录,类型是优惠券订单
|
||||||
|
* 3. 增加账变, 所属人为运营商
|
||||||
|
* */
|
||||||
|
// 1. 插入一条记录,et_coupon_user_log 获取方式是购买
|
||||||
|
Long userId = order.getUserId();
|
||||||
|
Long couponId = order.getCouponId();
|
||||||
|
AsUser asUser = asUserMapper.selectUserById(userId);
|
||||||
|
if(ObjectUtil.isNull(asUser)){
|
||||||
|
throw new ServiceException("用户【"+userId+"】不存在");
|
||||||
|
}
|
||||||
|
EtCoupon etCoupon = etCouponMapper.selectEtCouponByCouponId(couponId);
|
||||||
|
if(ObjectUtil.isNull(etCoupon)){
|
||||||
|
throw new ServiceException("优惠券【"+couponId+"】不存在");
|
||||||
|
}
|
||||||
|
EtCouponUserLog etCouponUserLog = new EtCouponUserLog();
|
||||||
|
etCouponUserLog.setCouponId(couponId);
|
||||||
|
etCouponUserLog.setUserId(userId);
|
||||||
|
etCouponUserLog.setUserName(asUser.getUserName());
|
||||||
|
etCouponUserLog.setCreateTime(DateUtils.getNowDate());
|
||||||
|
etCouponUserLog.setGainMethod(ServiceConstants.COUPON_GAIN_METHOD_BUY);
|
||||||
|
etCouponUserLog.setAreaId(etCoupon.getAreaId());
|
||||||
|
etCouponUserLog.setAreaName(etCoupon.getAreaName());
|
||||||
|
etCouponUserLog.setExpirationTime(DateUtils.addValidity(new Date(),etCoupon.getValidityUnit(),etCoupon.getValidityValue()));
|
||||||
|
if(ServiceConstants.COUPON_TYPE_TIME_CARD.equals(etCoupon.getType()) || ServiceConstants.COUPON_TYPE_VIP_CARD.equals(etCoupon.getType())){
|
||||||
|
AsUser asUser1 = new AsUser(userId);
|
||||||
|
asUser1.setVipType(etCoupon.getType());
|
||||||
|
Date expirationTime;
|
||||||
|
if(ObjectUtil.isNull(asUser.getExpirationTime())){
|
||||||
|
expirationTime = DateUtils.getNowDate();
|
||||||
|
}else{
|
||||||
|
expirationTime = asUser.getExpirationTime();
|
||||||
|
}
|
||||||
|
asUser1.setExpirationTime(DateUtils.addValidity(expirationTime,etCoupon.getValidityUnit(),etCoupon.getValidityValue()));
|
||||||
|
asUser1.setUserId(userId);
|
||||||
|
int updateUser = asUserMapper.updateUser(asUser1);
|
||||||
|
}
|
||||||
|
int i1 = etCouponClaimLogMapper.insertEtCouponClaimLog(etCouponUserLog);
|
||||||
|
if(i1 == 0){
|
||||||
|
throw new ServiceException("保存优惠券领取记录失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 增加优惠券账变
|
||||||
|
callbackService.capitalFlowRecords(order,ServiceConstants.FLOW_TYPE_INCOME,
|
||||||
|
ServiceConstants.ORDER_TYPE_COUPON_INCOME,ServiceConstants.OWNER_TYPE_OPERATOR,null,ServiceConstants.PAY_TYPE_WX);
|
||||||
|
}
|
||||||
|
|
||||||
private void asynchronousMsg(EtOrder order, BigDecimal amount) {
|
private void asynchronousMsg(EtOrder order, BigDecimal amount) {
|
||||||
scheduledExecutorService.schedule(() -> {
|
scheduledExecutorService.schedule(() -> {
|
||||||
/** 发送一个短信给运营商*/
|
/** 发送一个短信给运营商*/
|
||||||
|
|
|
@ -1,26 +1,29 @@
|
||||||
package com.ruoyi.system.service.impl;
|
package com.ruoyi.system.service.impl;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.ruoyi.common.constant.ServiceConstants;
|
import com.ruoyi.common.constant.ServiceConstants;
|
||||||
import com.ruoyi.common.core.domain.entity.AsUser;
|
import com.ruoyi.common.core.domain.entity.AsUser;
|
||||||
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import com.ruoyi.common.utils.uuid.IdUtils;
|
import com.ruoyi.common.utils.uuid.IdUtils;
|
||||||
import com.ruoyi.system.domain.*;
|
import com.ruoyi.system.domain.EtCoupon;
|
||||||
|
import com.ruoyi.system.domain.EtOrder;
|
||||||
|
import com.ruoyi.system.domain.vo.PrepayWithRequestPaymentResponseVo;
|
||||||
import com.ruoyi.system.mapper.AsUserMapper;
|
import com.ruoyi.system.mapper.AsUserMapper;
|
||||||
import com.ruoyi.system.mapper.EtCouponClaimLogMapper;
|
import com.ruoyi.system.mapper.EtCouponMapper;
|
||||||
import com.ruoyi.system.mapper.EtOrderMapper;
|
import com.ruoyi.system.mapper.EtOrderMapper;
|
||||||
import com.ruoyi.system.service.CallbackService;
|
import com.ruoyi.system.service.IEtCouponService;
|
||||||
|
import com.ruoyi.system.service.IWxPayService;
|
||||||
|
import com.wechat.pay.java.service.payments.jsapi.model.PrepayWithRequestPaymentResponse;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.ruoyi.system.mapper.EtCouponMapper;
|
|
||||||
import com.ruoyi.system.service.IEtCouponService;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 优惠券Service业务层处理
|
* 优惠券Service业务层处理
|
||||||
|
@ -29,14 +32,12 @@ import javax.annotation.Resource;
|
||||||
* @date 2024-08-05
|
* @date 2024-08-05
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@Slf4j
|
||||||
public class EtCouponServiceImpl implements IEtCouponService
|
public class EtCouponServiceImpl implements IEtCouponService
|
||||||
{
|
{
|
||||||
@Resource
|
@Resource
|
||||||
private EtCouponMapper etCouponMapper;
|
private EtCouponMapper etCouponMapper;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private EtCouponClaimLogMapper etCouponClaimLogMapper;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private AsUserMapper userMapper;
|
private AsUserMapper userMapper;
|
||||||
|
|
||||||
|
@ -44,7 +45,7 @@ public class EtCouponServiceImpl implements IEtCouponService
|
||||||
private EtOrderMapper etOrderMapper;
|
private EtOrderMapper etOrderMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CallbackService callbackService;
|
private IWxPayService wxPayService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询优惠券
|
* 查询优惠券
|
||||||
|
@ -127,66 +128,29 @@ public class EtCouponServiceImpl implements IEtCouponService
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public Boolean couponBuy(Long userId, Long couponId) {
|
public PrepayWithRequestPaymentResponse couponBuy(Long userId, Long couponId) {
|
||||||
/**
|
EtCoupon etCoupon = etCouponMapper.selectEtCouponByCouponId(couponId);
|
||||||
* 购买分为抵用券订单,会员卡订单、折扣卡订单
|
if(ObjectUtils.isEmpty(etCoupon)){
|
||||||
* 1. 插入一条记录,et_coupon_user_log 获取方式是购买
|
throw new ServiceException("优惠券【"+couponId+"】不存在");
|
||||||
* 2. 增加订单记录,类型是优惠券订单
|
}
|
||||||
* 3. 增加账变, 所属人为运营商
|
|
||||||
* */
|
|
||||||
// 1. 插入一条记录,et_coupon_user_log 获取方式是购买
|
|
||||||
AsUser asUser = userMapper.selectUserById(userId);
|
AsUser asUser = userMapper.selectUserById(userId);
|
||||||
if(ObjectUtil.isNull(asUser)){
|
if(ObjectUtil.isNull(asUser)){
|
||||||
throw new ServiceException("用户【"+userId+"】不存在");
|
throw new ServiceException("用户【"+userId+"】不存在");
|
||||||
}
|
}
|
||||||
EtCoupon etCoupon = etCouponMapper.selectEtCouponByCouponId(couponId);
|
|
||||||
if(ObjectUtil.isNull(etCoupon)){
|
|
||||||
throw new ServiceException("优惠券【"+couponId+"】不存在");
|
|
||||||
}
|
|
||||||
EtCouponUserLog etCouponUserLog = new EtCouponUserLog();
|
|
||||||
etCouponUserLog.setCouponId(couponId);
|
|
||||||
etCouponUserLog.setUserId(userId);
|
|
||||||
etCouponUserLog.setUserName(asUser.getUserName());
|
|
||||||
etCouponUserLog.setCreateTime(DateUtils.getNowDate());
|
|
||||||
etCouponUserLog.setGainMethod(ServiceConstants.COUPON_GAIN_METHOD_BUY);
|
|
||||||
etCouponUserLog.setAreaId(etCoupon.getAreaId());
|
|
||||||
etCouponUserLog.setAreaName(etCoupon.getAreaName());
|
|
||||||
etCouponUserLog.setExpirationTime(DateUtils.addValidity(new Date(),etCoupon.getValidityUnit(),etCoupon.getValidityValue()));
|
|
||||||
if(ServiceConstants.COUPON_TYPE_TIME_CARD.equals(etCoupon.getType()) || ServiceConstants.COUPON_TYPE_VIP_CARD.equals(etCoupon.getType())){
|
|
||||||
AsUser asUser1 = new AsUser(userId);
|
|
||||||
asUser1.setVipType(etCoupon.getType());
|
|
||||||
Date expirationTime;
|
|
||||||
if(ObjectUtil.isNull(asUser.getExpirationTime())){
|
|
||||||
expirationTime = DateUtils.getNowDate();
|
|
||||||
}else{
|
|
||||||
expirationTime = asUser.getExpirationTime();
|
|
||||||
}
|
|
||||||
asUser1.setExpirationTime(DateUtils.addValidity(expirationTime,etCoupon.getValidityUnit(),etCoupon.getValidityValue()));
|
|
||||||
int updateUser = userMapper.updateUser(asUser1);
|
|
||||||
}
|
|
||||||
int i1 = etCouponClaimLogMapper.insertEtCouponClaimLog(etCouponUserLog);
|
|
||||||
if(i1 == 0){
|
|
||||||
throw new ServiceException("保存优惠券领取记录失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2. 增加订单记录,类型是优惠券订单
|
// 2. 增加订单记录,类型是优惠券订单
|
||||||
EtOrder order = createOrder(etCoupon, asUser);
|
EtOrder order = createOrder(etCoupon, asUser);
|
||||||
if(ObjectUtil.isNotNull(order)){
|
PrepayWithRequestPaymentResponse response = wxPayService.prepayWithRequestPayment(order);
|
||||||
int i = etOrderMapper.insertEtOrder(order);
|
PrepayWithRequestPaymentResponseVo responseVo = new PrepayWithRequestPaymentResponseVo();
|
||||||
if(i > 0){
|
BeanUtils.copyProperties(response,responseVo);
|
||||||
// 账变是针对账户而言的,优惠券充值后的入账是进入到那个账户? 有效期 季度 quarter
|
responseVo.setSessionId(IdUtils.randomUUIDByDigit(8));
|
||||||
callbackService.capitalFlowRecords(order,ServiceConstants.FLOW_TYPE_INCOME,
|
responseVo.setOrderNo(order.getOrderNo());
|
||||||
ServiceConstants.ORDER_TYPE_COUPON_INCOME,ServiceConstants.OWNER_TYPE_OPERATOR,null,ServiceConstants.PAY_TYPE_WX);
|
return responseVo;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private EtOrder createOrder(EtCoupon etCoupon,AsUser user) {
|
private EtOrder createOrder(EtCoupon etCoupon,AsUser user) {
|
||||||
EtOrder etOrder = new EtOrder();
|
EtOrder etOrder = new EtOrder();
|
||||||
etOrder.setOrderNo(IdUtils.getOrderNo("wx"));
|
etOrder.setOrderNo(IdUtils.getOrderNo("yhj"));
|
||||||
etOrder.setUserId(user.getUserId());
|
etOrder.setUserId(user.getUserId());
|
||||||
etOrder.setUserName(user.getUserName());
|
etOrder.setUserName(user.getUserName());
|
||||||
etOrder.setMark("优惠券购买");
|
etOrder.setMark("优惠券购买");
|
||||||
|
@ -197,6 +161,10 @@ public class EtCouponServiceImpl implements IEtCouponService
|
||||||
etOrder.setType(ServiceConstants.ORDER_TYPE_COUPON);
|
etOrder.setType(ServiceConstants.ORDER_TYPE_COUPON);
|
||||||
etOrder.setTotalFee(etCoupon.getRetailPrice());
|
etOrder.setTotalFee(etCoupon.getRetailPrice());
|
||||||
etOrder.setPayFee(etCoupon.getRetailPrice());
|
etOrder.setPayFee(etCoupon.getRetailPrice());
|
||||||
|
int i = etOrderMapper.insertEtOrder(etOrder);
|
||||||
|
if(i == 0){
|
||||||
|
throw new ServiceException("订单生成失败");
|
||||||
|
}
|
||||||
return etOrder;
|
return etOrder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,6 +143,58 @@ public class WxPayService implements IWxPayService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PrepayWithRequestPaymentResponse prepayWithRequestPayment(EtOrder order) {
|
||||||
|
String billNo = order.getOrderNo();
|
||||||
|
// 创建订单
|
||||||
|
AsUser user = asUserService.selectUserById(order.getUserId());
|
||||||
|
try {
|
||||||
|
List<EtAreaDept> areaId1 = etAreaDeptMapper.selectList(new QueryWrapper<EtAreaDept>().eq("area_id", order.getAreaId()));
|
||||||
|
if (ObjectUtil.isNotEmpty(areaId1) && areaId1.size() > 0){
|
||||||
|
EtAreaDept etAreaDept = areaId1.get(0);
|
||||||
|
SysDept sysDept = deptService.selectDeptById(etAreaDept.getDeptId());
|
||||||
|
log.info("获取到运营商对象:【{}】",JSON.toJSON(sysDept));
|
||||||
|
if(ObjectUtil.isNull(sysDept)){
|
||||||
|
throw new ServiceException("没有运营商:【"+etAreaDept.getDeptId()+"】");
|
||||||
|
}
|
||||||
|
// 获取JSAPI所需参数
|
||||||
|
PrepayRequest request = new PrepayRequest();
|
||||||
|
request.setAmount(getAmount(order.getPayFee()));
|
||||||
|
JsapiServiceExtension jsapiServiceExtension = getJsapiServiceExtension(sysDept);
|
||||||
|
if(StrUtil.isNotBlank(order.getOutTradeNo())){
|
||||||
|
String tradeNo = order.getOutTradeNo();
|
||||||
|
// 关闭订单
|
||||||
|
CloseOrderRequest closeOrderRequest = new CloseOrderRequest();
|
||||||
|
closeOrderRequest.setMchid(sysDept.getMerchantId());
|
||||||
|
closeOrderRequest.setOutTradeNo(tradeNo);
|
||||||
|
jsapiServiceExtension.closeOrder(closeOrderRequest);
|
||||||
|
}
|
||||||
|
String outTradeNo = IdUtils.getOrderNo("wx");
|
||||||
|
order.setOutTradeNo(outTradeNo);
|
||||||
|
int updateEtOrder = etOrderService.updateEtOrder(order);
|
||||||
|
if(updateEtOrder == 0){
|
||||||
|
throw new ServiceException("更新订单outTradeNo失败");
|
||||||
|
}
|
||||||
|
request.setOutTradeNo(outTradeNo);
|
||||||
|
request.setAppid(sysDept.getAppid());
|
||||||
|
request.setMchid(sysDept.getMerchantId());
|
||||||
|
String description = "优惠券订单-"+billNo;
|
||||||
|
request.setAttach(JSON.toJSONString(new AttachVo(order.getType(),user.getUserId(), "")));
|
||||||
|
request.setDescription(description);
|
||||||
|
request.setNotifyUrl(sysDept.getNotifyUrl());
|
||||||
|
request.setPayer(getPayer(user.getWxopenid()));
|
||||||
|
PrepayWithRequestPaymentResponse res = jsapiServiceExtension.prepayWithRequestPayment(request);
|
||||||
|
return res;
|
||||||
|
}else{
|
||||||
|
log.info("区域:【{}】没有绑定运营商",order.getAreaId());
|
||||||
|
throw new ServiceException("区域:【"+order.getAreaId()+"】没有绑定运营商");
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
redisLock.unlock(PREPAY_LOCK + billNo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private JsapiServiceExtension getJsapiServiceExtension(SysDept sysDept) {
|
private JsapiServiceExtension getJsapiServiceExtension(SysDept sysDept) {
|
||||||
// 初始化商户配置
|
// 初始化商户配置
|
||||||
Config config = new RSAAutoCertificateConfig.Builder()
|
Config config = new RSAAutoCertificateConfig.Builder()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user