Kaynağa Gözat

[储值卡完结接口][新增]

release_toaliyun_real
Stormeye Wu 7 yıl önce
ebeveyn
işleme
a9b0b4a9e8
3 değiştirilmiş dosya ile 70 ekleme ve 31 silme
  1. +14
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/WxCardPayController.java
  2. +8
    -0
      mallinkService/src/main/java/com/iformall/service/WxCardSpendService.java
  3. +48
    -31
      mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java

+ 14
- 0
mallinkAdmin/src/main/java/com/iformall/controller/WxCardPayController.java Dosyayı Görüntüle

@@ -151,4 +151,18 @@ public class WxCardPayController extends BaseController {
int num = wxCardSpendService.update(wxCardSpend); int num = wxCardSpendService.update(wxCardSpend);
return new ResultData(num); return new ResultData(num);
} }

@ApiOperation("卡完结")
@PostMapping("/finishCard")
public ResultData finishCard(@RequestBody WxCardInfo wxCardInfo) {
String ipStr = getIpAddr();
logger.info("cardPay/finishCard: " + ipStr + " :" + wxCardInfo.toString());
if (wxCardInfo == null) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "过滤条件为空");
}
MallUserInfo user = getUser();
wxCardInfo.setTenantId(user.getTenantId());
int remainShareAmount = wxCardSpendService.finishCard(user.getTenantId(), wxCardInfo.getId());
return new ResultData(remainShareAmount);
}
} }

+ 8
- 0
mallinkService/src/main/java/com/iformall/service/WxCardSpendService.java Dosyayı Görüntüle

@@ -75,6 +75,14 @@ public interface WxCardSpendService {
*/ */
int update(WxCardSpend record); int update(WxCardSpend record);


/**
* 卡完结
*
* @param tenantId
* @param cardId
*/
int finishCard(String tenantId, Long cardId);

/** /**
* 根据Id删除实体 * 根据Id删除实体
* *


+ 48
- 31
mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java Dosyayı Görüntüle

@@ -285,11 +285,55 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
record.setPayStatus(EnumCardSpendStatus.MANUAL_PAY.getCode()); record.setPayStatus(EnumCardSpendStatus.MANUAL_PAY.getCode());
record.setUpdateDate(new Date()); record.setUpdateDate(new Date());
int num = wxCardSpendMapper.updateByCond(record); int num = wxCardSpendMapper.updateByCond(record);
// 3. 分账完结
shareFinishForCardPay(record.getTenantId(), record.getCardId());
return num; return num;
} }


@Override
public int finishCard(String tenantId, Long cardId) {
// admin用户手动帮已用卡消费用户退卡, 此卡需要分账完结, 买卡的钱进商场账户
WxCardInfo cardInfo = null;
try {
cardInfo = wxCardInfoMapper.selectByPrimaryKey(cardId);
} catch (Exception e) {
logger.error("微信分账: " + e.getMessage());
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), e.getMessage());
}
if(cardInfo != null) {
if (cardInfo.getRemainingAmount().equals(cardInfo.getAmount())){
logger.error("请用订单退款接口: ");
throw new MallinkException(ErrorCode.CARD_IS_NOT_COST);
} else if(cardInfo.getRemainingAmount() > 0){
// 卡已消费, 余额不为0
int remainShareFeeAmount = cardInfo.getRemainingShareFeeAmount();
try {
WxCouponOrder couponOrder = wxCouponOrderMapper.selectByPrimaryKey(cardInfo.getId());
// 更新 coupon order状态
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.CARD_RETURNED.getCode());
couponOrder.setUpdateDate(new Date());
wxCouponOrderMapper.updateByPrimaryKeySelective(couponOrder);
// 卡余额
WxCardInfo cardInfo1 = new WxCardInfo();
cardInfo1.setId(cardInfo.getId());
cardInfo1.setRemainingAmount(0);
cardInfo1.setUpdateDate(new Date());
wxCardInfoMapper.updateByPrimaryKeySelective(cardInfo1);

// 分账完结
WxSharingOrderDto shareOrder = new WxSharingOrderDto();
shareOrder.setcUserId(couponOrder.getOwnerId());
shareOrder.setTenantId(tenantId);
shareOrder.setTransactionId(cardInfo.getTransactionId());
cardShareFinished(cardInfo, shareOrder);
} catch (MallinkException e) {
logger.error("微信分账: " + e.getMessage());
throw new MallinkException(e.getErrorCode(), e.getMessage());
}
return remainShareFeeAmount;
}
}
return 0;
}

@Override @Override
public void deleteById(Long id) { public void deleteById(Long id) {
wxCardSpendMapper.deleteByPrimaryKey(id); wxCardSpendMapper.deleteByPrimaryKey(id);
@@ -375,34 +419,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
} }
} }


private void shareFinishForCardPay(String tenantId, Long cardId) {
// admin用户手动帮已用卡消费用户退卡, 此卡需要分账完结, 买卡的钱进商场账户
WxCardInfo cardInfo = null;
try {
cardInfo = wxCardInfoMapper.selectByPrimaryKey(cardId);
} catch (Exception e) {
logger.error("微信分账: " + e.getMessage());
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), e.getMessage());
}
if(cardInfo != null) {
if (cardInfo.getRemainingAmount().equals(cardInfo.getAmount())){
logger.error("请用订单退款接口: ");
throw new MallinkException(ErrorCode.CARD_IS_NOT_COST);
} else {
try {
WxCouponOrder couponOrder = wxCouponOrderMapper.selectByPrimaryKey(cardInfo.getId());
WxSharingOrderDto shareOrder = new WxSharingOrderDto();
shareOrder.setcUserId(couponOrder.getOwnerId());
shareOrder.setTenantId(tenantId);
shareOrder.setTransactionId(cardInfo.getTransactionId());
cardShareFinished(cardInfo, shareOrder);
} catch (MallinkException e) {
logger.error("微信分账: " + e.getMessage());
throw new MallinkException(e.getErrorCode(), e.getMessage());
}
}
}
}



/** /**
* 卡分账完结 * 卡分账完结
@@ -433,7 +450,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
logger.error("card spend insert error"); logger.error("card spend insert error");
return; return;
} }
// card info 更新 余额
// card info 更新 分账 余额
WxCardInfo cardInfo1 = new WxCardInfo(); WxCardInfo cardInfo1 = new WxCardInfo();
cardInfo1.setId(cardInfo.getId()); cardInfo1.setId(cardInfo.getId());
cardInfo1.setRemainingShareFeeAmount(0); cardInfo1.setRemainingShareFeeAmount(0);


Yükleniyor…
İptal
Kaydet