Просмотр исходного кода

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

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
a9b0b4a9e8
3 измененных файлов: 70 добавлений и 31 удалений
  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 Просмотреть файл

@@ -151,4 +151,18 @@ public class WxCardPayController extends BaseController {
int num = wxCardSpendService.update(wxCardSpend);
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 Просмотреть файл

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

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

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


+ 48
- 31
mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java Просмотреть файл

@@ -285,11 +285,55 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
record.setPayStatus(EnumCardSpendStatus.MANUAL_PAY.getCode());
record.setUpdateDate(new Date());
int num = wxCardSpendMapper.updateByCond(record);
// 3. 分账完结
shareFinishForCardPay(record.getTenantId(), record.getCardId());
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
public void deleteById(Long 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");
return;
}
// card info 更新 余额
// card info 更新 分账 余额
WxCardInfo cardInfo1 = new WxCardInfo();
cardInfo1.setId(cardInfo.getId());
cardInfo1.setRemainingShareFeeAmount(0);


Загрузка…
Отмена
Сохранить