|
|
|
@@ -304,13 +304,13 @@ public class PosServiceImpl implements PosService { |
|
|
|
logger.error("已经核销过的券: couponOrder-" + couponOrderCVo.getId()); |
|
|
|
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_USED); |
|
|
|
} |
|
|
|
if (couponOrderCVo.getCouponOrderStatus().equals(EnumCouponOrderStatus.POS_PRE_VERIFY.getCode())) { |
|
|
|
logger.info("券已被预核销: " + couponOrderIdStr); |
|
|
|
if (!couponOrderCVo.getBUserId().equals(buUserId)) { |
|
|
|
logger.error(ErrorCode.VERIFY_PRE_BUSER_NOT_EQUAL.getMessage() + ": " + buUserIdStr); |
|
|
|
throw new MallinkException(ErrorCode.VERIFY_PRE_BUSER_NOT_EQUAL); |
|
|
|
} |
|
|
|
if (actionType.equals(EnumVerifyActionType.CHECK)) { |
|
|
|
if (actionType.equals(EnumVerifyActionType.CHECK)) { |
|
|
|
if (couponOrderCVo.getCouponOrderStatus().equals(EnumCouponOrderStatus.POS_PRE_VERIFY.getCode())) { |
|
|
|
logger.info("券已被预核销: " + couponOrderIdStr); |
|
|
|
if (!couponOrderCVo.getBUserId().equals(buUserId)) { |
|
|
|
logger.error(ErrorCode.VERIFY_PRE_BUSER_NOT_EQUAL.getMessage() + ": " + buUserIdStr); |
|
|
|
throw new MallinkException(ErrorCode.VERIFY_PRE_BUSER_NOT_EQUAL); |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(posOrderIdStr)) { |
|
|
|
logger.error(ErrorCode.VERIFY_PRE_POS_ORDER_IS_EMPTY.getMessage()); |
|
|
|
throw new MallinkException(ErrorCode.VERIFY_PRE_POS_ORDER_IS_EMPTY); |
|
|
|
@@ -322,41 +322,45 @@ public class PosServiceImpl implements PosService { |
|
|
|
throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), |
|
|
|
ErrorCode.SYS_PARAMETER_CAST_ERROR.getMessage() + ", pos_order_id:" + posOrderIdStr); |
|
|
|
} |
|
|
|
} |
|
|
|
// check pos order是否一致 |
|
|
|
PosCouponOrderVerify posCouponOrderVerifyQ = new PosCouponOrderVerify(); |
|
|
|
posCouponOrderVerifyQ.setTenantId(tenantId); |
|
|
|
posCouponOrderVerifyQ.setCouponOrderId(couponOrderId); |
|
|
|
posCouponOrderVerifyQ.setPosOrderId(posOrderId); |
|
|
|
posCouponOrderVerifyQ.setState(EnumEnableType.Enable.getCode()); |
|
|
|
List<PosCouponOrderVerify> posCouponOrderVerifyList = posCouponOrderVerifyService.getList(posCouponOrderVerifyQ); |
|
|
|
if (posCouponOrderVerifyList.size() != 1) { |
|
|
|
logger.error(ErrorCode.VERIFY_PRE_POS_ORDER_NOT_EQUAL.getMessage() + ": " + posOrderIdStr); |
|
|
|
throw new MallinkException(ErrorCode.VERIFY_PRE_POS_ORDER_NOT_EQUAL); |
|
|
|
} |
|
|
|
logger.info("券可以核销: " + couponOrderIdStr); |
|
|
|
if (actionType.equals(EnumVerifyActionType.CHECK)) { |
|
|
|
// check pos order是否一致 |
|
|
|
PosCouponOrderVerify posCouponOrderVerifyQ = new PosCouponOrderVerify(); |
|
|
|
posCouponOrderVerifyQ.setTenantId(tenantId); |
|
|
|
posCouponOrderVerifyQ.setCouponOrderId(couponOrderId); |
|
|
|
posCouponOrderVerifyQ.setPosOrderId(posOrderId); |
|
|
|
posCouponOrderVerifyQ.setState(EnumEnableType.Enable.getCode()); |
|
|
|
List<PosCouponOrderVerify> posCouponOrderVerifyList = posCouponOrderVerifyService.getList(posCouponOrderVerifyQ); |
|
|
|
if (posCouponOrderVerifyList.size() != 1) { |
|
|
|
logger.error(ErrorCode.VERIFY_PRE_POS_ORDER_NOT_EQUAL.getMessage() + ": " + posOrderIdStr); |
|
|
|
throw new MallinkException(ErrorCode.VERIFY_PRE_POS_ORDER_NOT_EQUAL); |
|
|
|
} |
|
|
|
logger.info("券可以被核销: " + couponOrderIdStr); |
|
|
|
return retMap; |
|
|
|
} else if (couponOrderCVo.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode())) { |
|
|
|
logger.info("券可以被核销: " + couponOrderIdStr); |
|
|
|
return retMap; |
|
|
|
} |
|
|
|
if (actionType.equals(EnumVerifyActionType.VERIFY_INDEPENT) || actionType.equals(EnumVerifyActionType.VERIFY_PAY)) { |
|
|
|
try { |
|
|
|
doVerify(couponOrderCVo, wxCoupon, merchantId, buUserId, posOrderId, retMap); |
|
|
|
return retMap; |
|
|
|
} catch (MallinkException e) { |
|
|
|
logger.error(e.getMessage()); |
|
|
|
throw new MallinkException(e.getErrorCode(), e.getMessage()); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error(e.getMessage()); |
|
|
|
throw new MallinkException(500, e.getMessage()); |
|
|
|
} else if (actionType.equals(EnumVerifyActionType.PRE_VERIFY)) { |
|
|
|
if (couponOrderCVo.getCouponOrderStatus().equals(EnumCouponOrderStatus.POS_PRE_VERIFY.getCode())) { |
|
|
|
logger.info("券已被预核销: " + couponOrderIdStr); |
|
|
|
if (!couponOrderCVo.getBUserId().equals(buUserId)) { |
|
|
|
logger.error(ErrorCode.VERIFY_PRE_BUSER_NOT_EQUAL.getMessage() + ": " + buUserIdStr); |
|
|
|
throw new MallinkException(ErrorCode.VERIFY_PRE_BUSER_NOT_EQUAL); |
|
|
|
} |
|
|
|
// check pos order是否一致 |
|
|
|
PosCouponOrderVerify posCouponOrderVerifyQ = new PosCouponOrderVerify(); |
|
|
|
posCouponOrderVerifyQ.setTenantId(tenantId); |
|
|
|
posCouponOrderVerifyQ.setCouponOrderId(couponOrderId); |
|
|
|
posCouponOrderVerifyQ.setPosOrderId(posOrderId); |
|
|
|
posCouponOrderVerifyQ.setState(EnumEnableType.Enable.getCode()); |
|
|
|
List<PosCouponOrderVerify> posCouponOrderVerifyList = posCouponOrderVerifyService.getList(posCouponOrderVerifyQ); |
|
|
|
if (posCouponOrderVerifyList.size() != 1) { |
|
|
|
logger.error(ErrorCode.VERIFY_PRE_POS_ORDER_NOT_EQUAL.getMessage() + ": " + posOrderIdStr); |
|
|
|
throw new MallinkException(ErrorCode.VERIFY_PRE_POS_ORDER_NOT_EQUAL); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (couponOrderCVo.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode())) { |
|
|
|
logger.info("券可以核销: " + couponOrderIdStr); |
|
|
|
if (actionType.equals(EnumVerifyActionType.CHECK)) { |
|
|
|
return retMap; |
|
|
|
} |
|
|
|
if (actionType.equals(EnumVerifyActionType.PRE_VERIFY)) { |
|
|
|
if (couponOrderCVo.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode())) { |
|
|
|
logger.info("券可以被预核销: " + couponOrderIdStr); |
|
|
|
try { |
|
|
|
doPreVerify(couponOrderCVo, buUserId, posOrderId); |
|
|
|
return retMap; |
|
|
|
@@ -368,7 +372,32 @@ public class PosServiceImpl implements PosService { |
|
|
|
throw new MallinkException(500, e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
if (actionType.equals(EnumVerifyActionType.VERIFY_INDEPENT) || actionType.equals(EnumVerifyActionType.VERIFY_PAY)) { |
|
|
|
} else { |
|
|
|
// if (actionType.equals(EnumVerifyActionType.VERIFY_INDEPENT ) ||actionType.equals(EnumVerifyActionType.VERIFY_PAY)) |
|
|
|
boolean blVerify = false; |
|
|
|
if (couponOrderCVo.getCouponOrderStatus().equals(EnumCouponOrderStatus.POS_PRE_VERIFY.getCode())) { |
|
|
|
logger.info("券已被预核销: " + couponOrderIdStr); |
|
|
|
if (!couponOrderCVo.getBUserId().equals(buUserId)) { |
|
|
|
logger.error(ErrorCode.VERIFY_PRE_BUSER_NOT_EQUAL.getMessage() + ": " + buUserIdStr); |
|
|
|
throw new MallinkException(ErrorCode.VERIFY_PRE_BUSER_NOT_EQUAL); |
|
|
|
} |
|
|
|
// check pos order是否一致 |
|
|
|
PosCouponOrderVerify posCouponOrderVerifyQ = new PosCouponOrderVerify(); |
|
|
|
posCouponOrderVerifyQ.setTenantId(tenantId); |
|
|
|
posCouponOrderVerifyQ.setCouponOrderId(couponOrderId); |
|
|
|
posCouponOrderVerifyQ.setPosOrderId(posOrderId); |
|
|
|
posCouponOrderVerifyQ.setState(EnumEnableType.Enable.getCode()); |
|
|
|
List<PosCouponOrderVerify> posCouponOrderVerifyList = posCouponOrderVerifyService.getList(posCouponOrderVerifyQ); |
|
|
|
if (posCouponOrderVerifyList.size() != 1) { |
|
|
|
logger.error(ErrorCode.VERIFY_PRE_POS_ORDER_NOT_EQUAL.getMessage() + ": " + posOrderIdStr); |
|
|
|
throw new MallinkException(ErrorCode.VERIFY_PRE_POS_ORDER_NOT_EQUAL); |
|
|
|
} |
|
|
|
blVerify = true; |
|
|
|
} else if (couponOrderCVo.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode())) { |
|
|
|
logger.info("券可以被预核销: " + couponOrderIdStr); |
|
|
|
blVerify = true; |
|
|
|
} |
|
|
|
if (blVerify) { |
|
|
|
try { |
|
|
|
doVerify(couponOrderCVo, wxCoupon, merchantId, buUserId, posOrderId, retMap); |
|
|
|
return retMap; |
|
|
|
@@ -381,7 +410,7 @@ public class PosServiceImpl implements PosService { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
String errMessage = "核销异常:未知的核销状态" + couponOrderCVo.getCouponOrderStatus(); |
|
|
|
String errMessage = "核销异常:未知的核销状态-" + couponOrderCVo.getCouponOrderStatus() + ", 核销action-" + actionType.getCode(); |
|
|
|
logger.error(errMessage); |
|
|
|
throw new MallinkException(500, errMessage); |
|
|
|
} |
|
|
|
@@ -501,7 +530,7 @@ public class PosServiceImpl implements PosService { |
|
|
|
throw new MallinkException(e.getErrorCode(), e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
String errMessage = "取消异常:未知的核销状态" + couponOrderCVo.getCouponOrderStatus(); |
|
|
|
String errMessage = "取消异常:未知的核销状态-" + couponOrderCVo.getCouponOrderStatus()+ ", 核销action-" + actionType.getCode(); |
|
|
|
logger.error(errMessage); |
|
|
|
throw new MallinkException(500, errMessage); |
|
|
|
} |
|
|
|
@@ -538,15 +567,16 @@ public class PosServiceImpl implements PosService { |
|
|
|
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()); |
|
|
|
couponOrder.setBUserId(buUserId); |
|
|
|
couponOrder.setUpdateDate(new Date()); |
|
|
|
num = couponOrderMapper.updateVerifyCouponOrder(couponOrder); |
|
|
|
num = couponOrderMapper.updateVerifyCouponOrderStatus(couponOrder); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("db failed: couponOrder-" + couponOrderCVo.getId() + ", e:" + e.getMessage()); |
|
|
|
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); |
|
|
|
} |
|
|
|
if (num != 1) { |
|
|
|
logger.error("核销异常:updatete num " + num); |
|
|
|
logger.error("预核销异常:updatete num " + num); |
|
|
|
throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num); |
|
|
|
} |
|
|
|
logger.info("预核销已完成: " + couponOrderCVo.getId()); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@@ -602,6 +632,7 @@ public class PosServiceImpl implements PosService { |
|
|
|
logger.error("核销异常:updatete num " + num); |
|
|
|
throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num); |
|
|
|
} |
|
|
|
logger.info("预核销已取消: " + couponOrderCVo.getId()); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@@ -641,7 +672,7 @@ public class PosServiceImpl implements PosService { |
|
|
|
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); //1核销 |
|
|
|
couponOrder.setBUserId(buUserId); |
|
|
|
couponOrder.setUpdateDate(new Date()); |
|
|
|
num = couponOrderMapper.updateVerifyCouponOrder(couponOrder); |
|
|
|
num = couponOrderMapper.updateVerifyCouponOrderStatus(couponOrder); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("db failed: couponOrder-" + couponOrderCVo.getId() + ", e:" + e.getMessage()); |
|
|
|
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); |
|
|
|
@@ -682,6 +713,7 @@ public class PosServiceImpl implements PosService { |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("核销积分值异常:" + e.getMessage()); |
|
|
|
} |
|
|
|
logger.info("核销已完成: " + couponOrderCVo.getId()); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@@ -771,5 +803,6 @@ public class PosServiceImpl implements PosService { |
|
|
|
logger.error("核销异常:updatete num " + num); |
|
|
|
throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num); |
|
|
|
} |
|
|
|
logger.info("核销已取消: " + couponOrderCVo.getId()); |
|
|
|
} |
|
|
|
} |