Sfoglia il codice sorgente

update gift

release_toaliyun_real
xhxu 4 anni fa
parent
commit
0317b976b3
7 ha cambiato i file con 128 aggiunte e 188 eliminazioni
  1. +1
    -1
      mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java
  2. +5
    -1
      mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java
  3. +2
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumCouponVerifyType.java
  4. +2
    -9
      mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java
  5. +95
    -129
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  6. +23
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  7. +0
    -44
      mallinkService/src/main/java/com/iformall/service/order/impl/batch/CouponPackageOrderAdapterService.java

+ 1
- 1
mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java Vedi File

@@ -338,7 +338,7 @@ public class WxCouponOrderController extends BaseController {
WxCouponOrder couponOrder = null;
try {
wxCouponOrder.setVerifyRemark(verifyRemark);
couponOrder = wxCouponOrderService.verify(wxCouponOrder, wxMerchantBUser);
couponOrder = wxCouponOrderService.verify(wxCouponOrder, wxMerchantBUser, EnumCouponVerifyType.VERIFY_B);
} catch (MallinkException e) {
logger.error("核销异常: " + e.getMessage());
return new ResultData(e.getErrorCode(), e.getMessage());


+ 5
- 1
mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java Vedi File

@@ -475,7 +475,7 @@ public class WxCouponOrderController extends BaseController {
}
WxCouponOrder couponOrder = null;
try {
couponOrder = wxCouponOrderService.verify(wxCouponOrder);
couponOrder = wxCouponOrderService.verify(wxCouponOrder,null,EnumCouponVerifyType.VERIFY_C);
} catch (MallinkException e) {
logger.error("核销异常: " + e.getMessage());
return new ResultData(e.getErrorCode(), e.getMessage());
@@ -484,6 +484,10 @@ public class WxCouponOrderController extends BaseController {
return new ResultData(ErrorCode.VERIFY_ERROR, e.getMessage());
}

if (couponOrder != null) {
wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId());
}

return new ResultData(couponOrder);
}



+ 2
- 0
mallinkService/src/main/java/com/iformall/enums/EnumCouponVerifyType.java Vedi File

@@ -16,6 +16,8 @@ public enum EnumCouponVerifyType {
VERIFY_POS_PAY(2, "POS交易核销"),

VERIFY_C(3,"用户自主核销"),

VERIFY_AUTO(4,"系统自动核销"),
;

public static EnumCouponVerifyType getEnum(Integer code) {


+ 2
- 9
mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java Vedi File

@@ -6,6 +6,7 @@ import com.iformall.common.ResultData;
import com.iformall.domain.po.*;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.*;
import com.iformall.enums.EnumCouponVerifyType;
import com.iformall.enums.EnumPayWay;
import com.iformall.service.order.entity.WxComposeOrder;

@@ -55,15 +56,7 @@ public interface WxCouponOrderService {
* @param couponOrder
* @param bUser 核销人(登录用户)
*/
WxCouponOrder verify(WxCouponOrder couponOrder, WxMerchantBUser bUser);

/**
* 根据主键couponOrderId(券码)核销
* C端自主核销
*
* @param couponOrder
*/
WxCouponOrder verify(WxCouponOrder couponOrder);
WxCouponOrder verify(WxCouponOrder couponOrder, WxMerchantBUser bUser, EnumCouponVerifyType couponVerifyType);

/**
* 核销后发送消息


+ 95
- 129
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java Vedi File

@@ -1,8 +1,8 @@
package com.iformall.service.impl;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.openservices.shade.com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
@@ -392,7 +392,11 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public WxCouponOrder verify(WxCouponOrder couponOrder, WxMerchantBUser bUser) {
public WxCouponOrder verify(WxCouponOrder couponOrder, WxMerchantBUser bUser, EnumCouponVerifyType couponVerifyType) {
if(EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType) && bUser == null){
logger.error("B端核销未传入门店");
throw new MallinkException(ErrorCode.VERIFY_ERROR);
}

// 1. 获取券信息
WxCoupon wxCoupon = wxCouponMapper.selectById(couponOrder.getCouponId(),couponOrder.getTenantId());
@@ -423,45 +427,82 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
}

// 2. 检查适用门店
WxCouponMerchant wxCouponMerchant = new WxCouponMerchant();
wxCouponMerchant.setProductId(wxCoupon.getId());
wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode());
List<WxCouponMerchant> couponMerchantList = wxCouponMerchantMapper.findList(wxCouponMerchant);
if (!couponMerchantList.stream().anyMatch(cm -> cm.getMerchantId().equals(bUser.getMerchantId()))) {
logger.error("券: coupon-" + wxCoupon.getId() + "核销: couponMerchantId-" + bUser.getMerchantId());
throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL);
}
//如果开启了分账,就必须要配置分账账号
WxAppinfo appInfo = getAppinfo(couponOrder,couponOrder.getPayVendor());
WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId());
WxProfitSharingReceiver psReceiverQ = new WxProfitSharingReceiver();
psReceiverQ.updateTenantInfo(payAccount);
psReceiverQ.setMerchantId(bUser.getMerchantId());
psReceiverQ.setSharingType(payServiceFactory.getPayShareAdapterService(couponOrder.getPayVendor()).getProfitSharingType());
psReceiverQ.setStatus(EnumProfitSharingReceiverStatus.PROFIT_SHARING_RECEIVER_STATUS_VALID.getCode());
List<WxProfitSharingReceiver> psReceiverList = wxProfitSharingReceiverMapper.findList(psReceiverQ);
if (null == payAccount.getShare()) {
throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该租户payAccount未设置分账.");
}
if (EnumPayShare.YES.getCode().intValue() == payAccount.getShare().intValue()) {
if (null == psReceiverList || psReceiverList.size() == 0) {
throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该商户未设置分账账号.");
}else {
for (WxProfitSharingReceiver receiver:psReceiverList) {
if (EnumProfitSharingReceiverType.PROFIT_SHARING_RECEIVER_PERSONAL_WECHATID.getCode().intValue()
== receiver.getReceiverType().intValue()) {
throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该商户收款账号存在个人微信号方式,微信已停止支持,请重新设置.");
}
}
}
Long merchantId = null;
if(EnumCouponType.COUPON_DISTRIBUTION.getCode().equals(wxCoupon.getType())){
//可配送商品
WxCouponMerchant wxCouponMerchant = new WxCouponMerchant();
wxCouponMerchant.setProductId(wxCoupon.getId());
wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode());
WxCouponMerchant cm = null;
try{
cm = wxCouponMerchantMapper.selectOne(new QueryWrapper<>(wxCouponMerchant));
}catch (Exception e){
throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL);
}
if(cm == null){
throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL);
}
if(EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType) && !cm.getId().equals(bUser.getMerchantId())){
throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL);
}
merchantId = cm.getId();
}else if(EnumCouponType.COUPON_GIFT.getCode().equals(wxCoupon.getType())){
if (StringUtils.isBlank(wxCoupon.getGiftList())){
logger.error("券包: coupon-" + wxCoupon.getId() + "数据异常" + "couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_DATE_ERROR);
}
if(!EnumCouponVerifyType.VERIFY_AUTO.equals(couponVerifyType)){
throw new MallinkException(ErrorCode.VERIFY_COUPON_TYPE_NOT_SUPPORT);
}
}else{
if(!EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType)){
throw new MallinkException(ErrorCode.VERIFY_COUPON_TYPE_NOT_SUPPORT);
}
WxCouponMerchant wxCouponMerchant = new WxCouponMerchant();
wxCouponMerchant.setProductId(wxCoupon.getId());
wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode());
List<WxCouponMerchant> couponMerchantList = wxCouponMerchantMapper.findList(wxCouponMerchant);
if (!couponMerchantList.stream().anyMatch(cm -> cm.getMerchantId().equals(bUser.getMerchantId()))) {
logger.error("券: coupon-" + wxCoupon.getId() + "核销: couponMerchantId-" + bUser.getMerchantId());
throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL);
}
merchantId = bUser.getId();
}

if(merchantId != null){
//如果开启了分账,就必须要配置分账账号
WxAppinfo appInfo = getAppinfo(couponOrder,couponOrder.getPayVendor());
WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId());
WxProfitSharingReceiver psReceiverQ = new WxProfitSharingReceiver();
psReceiverQ.updateTenantInfo(payAccount);
psReceiverQ.setMerchantId(merchantId);
psReceiverQ.setSharingType(payServiceFactory.getPayShareAdapterService(couponOrder.getPayVendor()).getProfitSharingType());
psReceiverQ.setStatus(EnumProfitSharingReceiverStatus.PROFIT_SHARING_RECEIVER_STATUS_VALID.getCode());
List<WxProfitSharingReceiver> psReceiverList = wxProfitSharingReceiverMapper.findList(psReceiverQ);
if (null == payAccount.getShare()) {
throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该租户payAccount未设置分账.");
}
if (EnumPayShare.YES.getCode().intValue() == payAccount.getShare().intValue()) {
if (null == psReceiverList || psReceiverList.size() == 0) {
throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该商户未设置分账账号.");
}else {
for (WxProfitSharingReceiver receiver:psReceiverList) {
if (EnumProfitSharingReceiverType.PROFIT_SHARING_RECEIVER_PERSONAL_WECHATID.getCode().intValue()
== receiver.getReceiverType().intValue()) {
throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该商户收款账号存在个人微信号方式,微信已停止支持,请重新设置.");
}
}
}
}
}

int num = 0;
try {
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); //1核销
couponOrder.setBUserId(bUser.getId());
couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_B.getCode());
if(StringUtils.isNotBlank(couponOrder.getVerifyRemark())){
couponOrder.setBUserId(bUser==null?0l:bUser.getId());
couponOrder.setVerifyType(couponVerifyType.getCode());
if(EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType)
&& StringUtils.isNotBlank(couponOrder.getVerifyRemark())){
if(couponOrder.getVerifyRemark().equals(EnumCouponVerifyType.VERIFY_B_11.getCode().toString())){
couponOrder.setVerifyRemark(EnumCouponVerifyType.VERIFY_B_11.getMessage());
}else if(couponOrder.getVerifyRemark().equals(EnumCouponVerifyType.VERIFY_B_12.getCode().toString())){
@@ -483,100 +524,24 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
logger.error("核销异常:updatete num " + num);
throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num);
}
doAfterVerify(couponOrder, bUser, wxCoupon);
return couponOrder;
}
@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public WxCouponOrder verify(WxCouponOrder couponOrder) {

// 1. 获取券信息
WxCoupon wxCoupon = wxCouponMapper.selectById(couponOrder.getCouponId(),couponOrder.getTenantId());
if (wxCoupon == null) {
logger.error("券: coupon-" + wxCoupon.getId() + "不存在" + "couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL);
}
// 3. 券包状态检查
if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode()) {
logger.error("已过期: couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_OVER_TIME);
}
if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_INVALID.getCode()) {
logger.error("已退款: couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_INVALID);
}
if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()) {
logger.error("已经核销过的券: couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_USED);
}
if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()) {
logger.error("券已被预核销: couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_PRE_VERIFY);
}
if(!EnumCouponType.COUPON_DISTRIBUTION.getCode().equals(wxCoupon.getType())){
logger.error("券类型不支持: couponOrder-" + couponOrder.getId() +"类型:" + wxCoupon.getType());
throw new MallinkException(ErrorCode.COUPON_ORDER_TYPE_NOT_SUPPORTED);
}

// 2. 检查适用门店(自主核销有且只有一个门店)
WxCouponMerchant wxCouponMerchant = new WxCouponMerchant();
wxCouponMerchant.setProductId(wxCoupon.getId());
wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode());
WxCouponMerchant cm = null;
try{
cm = wxCouponMerchantMapper.selectOne(new QueryWrapper<>(wxCouponMerchant));
}catch (Exception e){
throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL);
}
if(cm == null){
throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL);
}

//如果开启了分账,就必须要配置分账账号
WxAppinfo appInfo = getAppinfo(couponOrder,couponOrder.getPayVendor());
WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId());
WxProfitSharingReceiver psReceiverQ = new WxProfitSharingReceiver();
psReceiverQ.updateTenantInfo(payAccount);
psReceiverQ.setMerchantId(cm.getMerchantId());
psReceiverQ.setSharingType(payServiceFactory.getPayShareAdapterService(couponOrder.getPayVendor()).getProfitSharingType());
psReceiverQ.setStatus(EnumProfitSharingReceiverStatus.PROFIT_SHARING_RECEIVER_STATUS_VALID.getCode());
List<WxProfitSharingReceiver> psReceiverList = wxProfitSharingReceiverMapper.findList(psReceiverQ);
if (null == payAccount.getShare()) {
throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该租户payAccount未设置分账.");
}
if (EnumPayShare.YES.getCode().intValue() == payAccount.getShare().intValue()) {
if (null == psReceiverList || psReceiverList.size() == 0) {
throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该商户未设置分账账号.");
}else {
for (WxProfitSharingReceiver receiver:psReceiverList) {
if (EnumProfitSharingReceiverType.PROFIT_SHARING_RECEIVER_PERSONAL_WECHATID.getCode().intValue()
== receiver.getReceiverType().intValue()) {
throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(),"该商户收款账号存在个人微信号方式,微信已停止支持,请重新设置.");
}
}
}
}
int num = 0;
try {
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); //1核销
couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_C.getCode());
if(EnumOrderShopingType.SELF_MENTION.getCode().equals(couponOrder.getShippingType())){
couponOrder.setShippingStatus(EnumOrderShopingStatus.ALREADY_SELF_MENTION.getCode());
}else if(EnumOrderShopingType.DISTRIBUTION.getCode().equals(couponOrder.getShippingType())){
couponOrder.setShippingStatus(EnumOrderShopingStatus.ALREADY_DISTRIBUTION.getCode());
if(EnumCouponType.COUPON_GIFT.getCode().equals(wxCoupon.getType())){
try {
List<Long> longs = JSON.parseArray(wxCoupon.getGiftList(), Long.class);
//发券包子券
wxOrderService.sendSubCouponToUser(couponOrder,longs);
} catch (MallinkException e) {
throw e;
} catch (Exception e){
throw new MallinkException(ErrorCode.COUPON_ORDER_SEND_ERROR.getCode(), couponOrder.getCouponName() + ErrorCode.COUPON_ORDER_SEND_ERROR.getMessage() );
}
couponOrder.setUpdateDate(new Date());
num = wxCouponOrderMapper.updateVerifyCouponOrder(couponOrder);
} catch (Exception e) {
logger.error("db failed: couponOrder-" + couponOrder.getId() + ", e:" + e.getMessage());
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage());
}
if (num != 1) {
logger.error("核销异常:updatete num " + num);
throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num);

if(EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType)){
doAfterVerify(couponOrder, bUser, wxCoupon);
}else{
doAfterVerify(couponOrder, wxCoupon, merchantId);
}
doAfterVerify(couponOrder, wxCoupon, cm.getMerchantId());
this.sendInsideCouponVerifyMsg(couponOrder, couponOrder.getId(), cm.getMerchantId());
couponOrder.setMerchantId(merchantId);
return couponOrder;
}

@@ -689,7 +654,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
creditHistory.setSpend(couponOrder.getCouponPrice());
//如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户
creditHistory.setMerchantId(merchantId);
creditHistory.setChangePurpose("用户自主核销增加积分:券名称["+wxCoupon.getTitle()+"("+creditHistory.getSpendStr()+"元)] ");
creditHistory.setChangePurpose("增加积分:券名称["+wxCoupon.getTitle()+"("+creditHistory.getSpendStr()+"元)] ");
wxCreditHistoryService.saveOrUpdate(creditHistory,couponOrder.getTenantId());
} catch (Exception e) {
logger.error("积分值:" + e.getMessage());
@@ -924,6 +889,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
// 补贴已入库
return;
}
subsidyNum = subsidyNum * couponOrder.getCouponNumber();
// 新补贴入库
int iSubChargeFee = OrderHelper.getMallCharge(subsidyNum, payAccount);
Integer realSubsidyFee = subsidyNum - iSubChargeFee;


+ 23
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Vedi File

@@ -114,6 +114,9 @@ public class WxOrderServiceImpl implements WxOrderService {
@Autowired
WxCouponOrderMapper wxCouponOrderMapper;

@Autowired
WxCouponOrderService wxCouponOrderService;

@Autowired
WxCUserService wxCUserService;

@@ -1538,17 +1541,33 @@ public class WxOrderServiceImpl implements WxOrderService {
/**
* 下订单后操作
*
* @param updateOrder
* @param order
* @param coupon
* @param user
*/
public void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUserBasicInfo user) {
public void actionAfterCouponOrderSuccess(WxOrder order, WxCoupon coupon, WxCUserBasicInfo user) {
if(EnumCouponType.COUPON_GIFT.getCode().equals(coupon.getType())){
WxCouponOrder couponOrderQ = new WxCouponOrder();
couponOrderQ.setOrderId(order.getId());
couponOrderQ.setCouponId(coupon.getId());
couponOrderQ.updateTenantInfo(order);
List<WxCouponOrder> couponorderlist = wxCouponOrderMapper.findList(couponOrderQ);
if (null != couponorderlist && couponorderlist.size() > 0 ) {
WxCouponOrder couponOrder = couponorderlist.get(0);
try {
wxCouponOrderService.verify(couponOrder,null,EnumCouponVerifyType.VERIFY_AUTO);
} catch (Exception e) {
logger.error("系统券包核销异常:" + e.getMessage());
}
}

}
/// TODO 晚上会定时打一下tag
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user,updateOrder,null);
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user,order,null);

// 交易发券
try {
wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.C_ORDER, updateOrder,EnumPayWay.PAY_WAY_NOT_UNPAY_TRADE);
wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.C_ORDER, order,EnumPayWay.PAY_WAY_NOT_UNPAY_TRADE);
} catch (Exception e) {
logger.error("订单发券:" + e.getMessage());
}


+ 0
- 44
mallinkService/src/main/java/com/iformall/service/order/impl/batch/CouponPackageOrderAdapterService.java Vedi File

@@ -57,50 +57,6 @@ public class CouponPackageOrderAdapterService extends BaseBatchOrderAdapterServi
@Async
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false, rollbackFor = {Exception.class})
public void doOthersAfterPaySuccess(WxOrder order, WxPayOrder record, WxCouponOrder couponOrder) {
WxCoupon wxCoupon = wxCouponMapper.selectById(couponOrder.getCouponId(), couponOrder.getTenantId());
if (wxCoupon == null || !EnumCouponType.COUPON_GIFT.getCode().equals(wxCoupon.getType())) {
logger.error("券包: coupon-" + wxCoupon.getId() + "不存在" + "couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL);
}
if (StringUtils.isBlank(wxCoupon.getGiftList())){
logger.error("券包: coupon-" + wxCoupon.getId() + "数据异常" + "couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_DATE_ERROR);
}
if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode()) {
logger.error("已过期: couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_OVER_TIME);
}
if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_INVALID.getCode()) {
logger.error("已退款: couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_INVALID);
}
if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()) {
logger.error("已经核销过的券: couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_USED);
}
if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()) {
logger.error("券已被预核销: couponOrder-" + couponOrder.getId());
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_PRE_VERIFY);
}

//核销券包
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); //1核销
couponOrder.setBUserId(0l);
couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_C.getCode());
couponOrder.setUpdateDate(new Date());
int num = wxCouponOrderMapper.updateVerifyCouponOrder(couponOrder);
if (num != 1) {
throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num);
}
try {
List<Long> longs = JSON.parseArray(wxCoupon.getGiftList(), Long.class);
//发券包子券
wxOrderService.sendSubCouponToUser(couponOrder,longs);
} catch (MallinkException e) {
throw e;
} catch (Exception e){
throw new MallinkException(ErrorCode.COUPON_ORDER_SEND_ERROR.getCode(), couponOrder.getCouponName() + ErrorCode.COUPON_ORDER_SEND_ERROR.getMessage() );
}

}



Caricamento…
Annulla
Salva