|
|
@@ -130,13 +130,16 @@ public class CardBusiness {
|
|
|
List<PtCardVo> uesrCardList = ptCardService.queryList(queryBo);
|
|
|
result = switch (cardBo.getOperateType()) {
|
|
|
// 发卡
|
|
|
- case 2 -> checkUserNewCard(uesrCardList, cardBo);
|
|
|
+ case ISSUE -> checkUserNewCard(uesrCardList, cardBo);
|
|
|
// 换卡
|
|
|
- case 3 -> checkUserChangeCard(uesrCardList, cardBo);
|
|
|
+ case CHANGE -> checkUserChangeCard(uesrCardList, cardBo);
|
|
|
// 补卡
|
|
|
- case 4 -> checkUserReIssueCard(uesrCardList, cardBo);
|
|
|
+ case REISSUE -> checkUserReIssueCard(uesrCardList, cardBo);
|
|
|
default -> R.ok(new ResultInfo(ResultCodeEnum.SUCCESS));
|
|
|
};
|
|
|
+ if(R.isError(result)){
|
|
|
+ return R.fail(result.getData());
|
|
|
+ }
|
|
|
// 所有逻辑校验通过,入库
|
|
|
cardBo.setCardNo(cardNoBusiness.getCardNo());
|
|
|
cardBo.setStatus(CardStatusEnum.NORMAL.code().toString());
|
|
|
@@ -182,7 +185,7 @@ public class CardBusiness {
|
|
|
Long userId = cardBo.getUserId();
|
|
|
String mainCard = cardBo.getMainCard();
|
|
|
Long stationNumb = cardBo.getStationNumb();
|
|
|
- Integer operateType = cardBo.getOperateType();
|
|
|
+ CardOperateEnum operateType = cardBo.getOperateType();
|
|
|
String tenantId = cardBo.getTenantId() == null ? DefaultConstants.TENANT_ID : cardBo.getTenantId();
|
|
|
|
|
|
if (ObjectUtil.isEmpty(factoryId) || factoryId == 0) {
|
|
|
@@ -288,9 +291,10 @@ public class CardBusiness {
|
|
|
}
|
|
|
Long oldCardNo = cardBo.getOldCardNo();
|
|
|
Long oldFactoryId = cardBo.getOldFactoryId();
|
|
|
+ Long oldCardId = cardBo.getOldCardId();
|
|
|
PtCardVo oldCardVo = new PtCardVo();
|
|
|
// 换卡时,必须有原卡的发卡记录
|
|
|
- R<ResultInfo> result = checkUserOldCard(userCardList, oldCardNo, oldFactoryId, oldCardVo);
|
|
|
+ R<ResultInfo> result = checkUserOldCard(userCardList, oldCardNo, oldFactoryId, oldCardId, oldCardVo);
|
|
|
if (R.isError(result)) {
|
|
|
return R.fail(MessageFormat.format("无法换卡,{0}", result.getData()));
|
|
|
}
|
|
|
@@ -317,14 +321,15 @@ public class CardBusiness {
|
|
|
}
|
|
|
Long oldCardNo = cardBo.getOldCardNo();
|
|
|
Long oldFactoryId = cardBo.getOldFactoryId();
|
|
|
+ Long oldCardId = cardBo.getOldCardId();
|
|
|
PtCardVo oldCardVo = new PtCardVo();
|
|
|
// 补卡时,必须有原卡的发卡记录
|
|
|
- R<ResultInfo> result = checkUserOldCard(userCardList, oldCardNo, oldFactoryId, oldCardVo);
|
|
|
+ R<ResultInfo> result = checkUserOldCard(userCardList, oldCardNo, oldFactoryId, oldCardId, oldCardVo);
|
|
|
if (R.isError(result)) {
|
|
|
- return R.fail(MessageFormat.format("无法补卡,{0}", result.getData()));
|
|
|
+ return R.fail(result.getData());
|
|
|
}
|
|
|
// 补卡时,原卡必须是挂失状态
|
|
|
- if (ObjectUtil.notEqual(oldCardVo.getStatus(), CardStatusEnum.LOCK.code())) {
|
|
|
+ if (ObjectUtil.notEqual(oldCardVo.getStatus(), CardStatusEnum.LOCK.code().toString())) {
|
|
|
return R.fail(
|
|
|
new ResultInfo(ResultCodeEnum.DATA_NOT_FOUND,
|
|
|
MessageFormat.format("没有物理卡号[{0}]和卡流水号[{1}]对应的挂失卡片", oldFactoryId, oldCardNo)));
|
|
|
@@ -341,23 +346,25 @@ public class CardBusiness {
|
|
|
return R.ok(new ResultInfo(ResultCodeEnum.SUCCESS));
|
|
|
}
|
|
|
|
|
|
- private R<ResultInfo> checkUserOldCard(List<PtCardVo> userCardList, Long oldCardNo, Long oldFactoryId, PtCardVo oldCardVo) {
|
|
|
- if (ObjectUtil.isEmpty(oldCardNo) || oldCardNo == 0) {
|
|
|
- return R.fail(new ResultInfo(ResultCodeEnum.PARAM_IS_INVALID, "旧卡的卡流水号必须大于0"));
|
|
|
- }
|
|
|
- if (ObjectUtil.isEmpty(oldFactoryId) || oldFactoryId == 0) {
|
|
|
- return R.fail(new ResultInfo(ResultCodeEnum.PARAM_IS_INVALID, "旧卡的物理卡号必须大于0"));
|
|
|
- }
|
|
|
- if (userCardList.stream().noneMatch(p -> ObjectUtil.equals(p.getCardNo(), oldCardNo) && ObjectUtil.equals(p.getFactoryId(), oldFactoryId))) {
|
|
|
- return R.fail(
|
|
|
- new ResultInfo(ResultCodeEnum.DATA_NOT_FOUND,
|
|
|
- MessageFormat.format("无物理卡号[{0}]和卡流水号[{1}]对应的旧卡记录", oldFactoryId, oldCardNo)));
|
|
|
+ private R<ResultInfo> checkUserOldCard(List<PtCardVo> userCardList, Long oldCardNo, Long oldFactoryId, Long oldCardId, PtCardVo oldCardVo) {
|
|
|
+ //if (ObjectUtil.isEmpty(oldCardNo) || oldCardNo == 0) {
|
|
|
+ // return R.fail(new ResultInfo(ResultCodeEnum.PARAM_IS_INVALID, "旧卡的卡流水号必须大于0"));
|
|
|
+ //}
|
|
|
+ //if (ObjectUtil.isEmpty(oldFactoryId) || oldFactoryId == 0) {
|
|
|
+ // return R.fail(new ResultInfo(ResultCodeEnum.PARAM_IS_INVALID, "旧卡的物理卡号必须大于0"));
|
|
|
+ //}
|
|
|
+ if(oldCardId>0) {
|
|
|
+ if (userCardList.stream().noneMatch(p -> ObjectUtil.equals(p.getCardId(), oldCardId))) {
|
|
|
+ return R.fail(
|
|
|
+ new ResultInfo(ResultCodeEnum.DATA_NOT_FOUND,
|
|
|
+ MessageFormat.format("无物卡片Id[{0}]对应的旧卡记录", oldCardId)));
|
|
|
+ }
|
|
|
+ // 取出旧卡信息
|
|
|
+ PtCardVo oldCard = userCardList.stream().filter(
|
|
|
+ p -> ObjectUtil.equals(p.getCardId(), oldCardId)).findFirst().orElse(null);
|
|
|
+ BeanUtil.copyProperties(oldCard, oldCardVo);
|
|
|
}
|
|
|
- // 取出旧卡信息
|
|
|
- PtCardVo oldCard = userCardList.stream().filter(
|
|
|
- p -> ObjectUtil.equals(p.getCardNo(), oldCardNo) && ObjectUtil.equals(p.getFactoryId(), oldFactoryId)).findFirst().orElse(null);
|
|
|
|
|
|
- BeanUtil.copyProperties(oldCard, oldCardVo);
|
|
|
return R.ok(new ResultInfo(ResultCodeEnum.SUCCESS));
|
|
|
}
|
|
|
}
|