|
|
@@ -8,13 +8,16 @@ import com.zhongshu.card.client.model.school.CardLossParam;
|
|
|
import com.zhongshu.card.client.ret.ResultContent;
|
|
|
import com.zhongshu.card.client.ret.ResultMessage;
|
|
|
import com.zhongshu.card.client.service.school.CardInfoService;
|
|
|
+import com.zhongshu.card.client.utils.type.CardOperationType;
|
|
|
import com.zhongshu.card.client.utils.type.school.CardState;
|
|
|
import com.zhongshu.card.server.core.dao.CardInfoDao;
|
|
|
import com.zhongshu.card.server.core.dao.org.OrganizationDao;
|
|
|
import com.zhongshu.card.server.core.dao.org.UserCountDao;
|
|
|
+import com.zhongshu.card.server.core.dao.user.CardInfoLossRecordDao;
|
|
|
import com.zhongshu.card.server.core.domain.org.Organization;
|
|
|
import com.zhongshu.card.server.core.domain.org.UserAccount;
|
|
|
import com.zhongshu.card.server.core.domain.school.CardInfo;
|
|
|
+import com.zhongshu.card.server.core.domain.school.CardInfoLossRecord;
|
|
|
import com.zhongshu.card.server.core.service.base.SuperService;
|
|
|
import com.zhongshu.card.server.core.util.BeanUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
@@ -22,6 +25,7 @@ import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.Assert;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
@@ -50,6 +54,9 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
|
|
|
@Autowired
|
|
|
UserService userService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ CardInfoLossRecordDao cardInfoLossRecordDao;
|
|
|
+
|
|
|
/**
|
|
|
* 添加或修改卡片信息
|
|
|
*
|
|
|
@@ -59,23 +66,36 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
|
|
|
@Override
|
|
|
public ResultContent addCardInfo(CardInfoParam param) {
|
|
|
initDefaultUserParam(param);
|
|
|
- String oid = param.getOid();
|
|
|
+ if (StringUtils.isEmpty(param.getCode())) {
|
|
|
+ return ResultContent.buildFail("code不能为空");
|
|
|
+ }
|
|
|
|
|
|
- CardInfo cardInfo = null;
|
|
|
+ String oid = param.getOid();
|
|
|
+ String code = param.getCode();
|
|
|
+ CardInfo cardInfo = new CardInfo();
|
|
|
+ CardInfo temp = cardInfoDao.findByCode(code);
|
|
|
if (StringUtils.isNotEmpty(param.getId())) {
|
|
|
cardInfo = cardInfoDao.findTopById(param.getId());
|
|
|
+ if (ObjectUtils.isEmpty(cardInfo)) {
|
|
|
+ return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, param.getId()));
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotEmpty(temp) && !ObjectUtils.equals(temp.getId(), cardInfo.getId())) {
|
|
|
+ return ResultContent.buildFail(String.format("卡号已存在:%s", code));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (ObjectUtils.isNotEmpty(temp)) {
|
|
|
+ return ResultContent.buildFail(String.format("卡号已存在:%s", code));
|
|
|
+ }
|
|
|
}
|
|
|
- if (ObjectUtils.isEmpty(cardInfo)) {
|
|
|
- param.setId(null);
|
|
|
- cardInfo = new CardInfo();
|
|
|
- }
|
|
|
- BeanUtils.copyProperties(param, cardInfo);
|
|
|
+ BeanUtils.copyProperties(param, cardInfo, "cardState");
|
|
|
if (StringUtils.isNotEmpty(oid)) {
|
|
|
Organization organization = organizationDao.findTopByOid(oid);
|
|
|
cardInfo.setOrganization(organization);
|
|
|
}
|
|
|
UserAccount account = userCountDao.findTopByUserId(param.getUserId());
|
|
|
cardInfo.setUserAccount(account);
|
|
|
+ cardInfo.setUserId(account.getUserId());
|
|
|
+ cardInfo.setUserName(account.getName());
|
|
|
cardInfoDao.save(cardInfo);
|
|
|
return ResultContent.buildSuccess();
|
|
|
}
|
|
|
@@ -129,6 +149,7 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
|
|
|
* @param param
|
|
|
* @return
|
|
|
*/
|
|
|
+ @Transactional
|
|
|
@Override
|
|
|
public ResultContent cardLossById(CardLossParam param) {
|
|
|
Assert.hasText(param.getPassWord(), "密码不能为空");
|
|
|
@@ -138,12 +159,23 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
|
|
|
if (resultContent.getState() != ResultState.Success) {
|
|
|
return ResultContent.buildFail("密码错误");
|
|
|
}
|
|
|
+ UserAccount userAccount = userCountDao.findTopByUserId(userId);
|
|
|
CardInfo cardInfo = cardInfoDao.findTopById(param.getId());
|
|
|
if (ObjectUtils.isEmpty(cardInfo)) {
|
|
|
return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, param.getId()));
|
|
|
}
|
|
|
cardInfo.setCardState(CardState.Loss);
|
|
|
cardInfoDao.save(cardInfo);
|
|
|
+
|
|
|
+ CardInfoLossRecord cardInfoLossRecord = new CardInfoLossRecord();
|
|
|
+ cardInfoLossRecord.setCardInfo(cardInfo);
|
|
|
+ cardInfoLossRecord.setOperUserAccount(userAccount);
|
|
|
+ cardInfoLossRecord.setOperUserId(userId);
|
|
|
+ cardInfoLossRecord.setCardUserId(userId);
|
|
|
+ cardInfoLossRecord.setCardUserAccount(userAccount);
|
|
|
+ cardInfoLossRecord.setOperationType(CardOperationType.Loss);
|
|
|
+ cardInfoLossRecordDao.save(cardInfoLossRecord);
|
|
|
+
|
|
|
return ResultContent.buildSuccess();
|
|
|
}
|
|
|
|
|
|
@@ -156,18 +188,46 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
|
|
|
@Override
|
|
|
public ResultContent cardLossByIccId(CardLossParam param) {
|
|
|
Assert.hasText(param.getPassWord(), "密码不能为空");
|
|
|
- Assert.hasText(param.getIccid(), "iccid不能为空");
|
|
|
+ Assert.hasText(param.getCode(), "code不能为空");
|
|
|
+ Assert.hasText(param.getPhone(), "phone不能为空");
|
|
|
+
|
|
|
String userId = getCurrentUserId();
|
|
|
+ UserAccount userAccount = userCountDao.findTopByUserId(userId);
|
|
|
+
|
|
|
com.github.microservice.auth.client.content.ResultContent<Void> resultContent = userService.checkLoginPassword(userId, param.getPassWord());
|
|
|
if (resultContent.getState() != ResultState.Success) {
|
|
|
return ResultContent.buildFail("密码错误");
|
|
|
}
|
|
|
- CardInfo cardInfo = cardInfoDao.findTopByIccid(param.getIccid());
|
|
|
+
|
|
|
+ CardInfo cardInfo = cardInfoDao.findByCode(param.getCode());
|
|
|
if (ObjectUtils.isEmpty(cardInfo)) {
|
|
|
- return ResultContent.buildFail(String.format("iccid不存在:%s", param.getIccid()));
|
|
|
+ return ResultContent.buildFail(String.format("卡片不存在:%s", param.getCode()));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断卡片人的信息
|
|
|
+ String cardUserId = cardInfo.getUserId();
|
|
|
+ UserAccount cardUserAccount = userCountDao.findTopByUserId(cardUserId);
|
|
|
+ if (!cardUserAccount.getPhone().equals(param.getPhone())) {
|
|
|
+ return ResultContent.buildFail("持卡人信息和卡号不一致");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (cardInfo.getCardState() == CardState.Loss) {
|
|
|
+ return ResultContent.buildFail(String.format("卡片已挂失:%s", param.getCode()));
|
|
|
}
|
|
|
+
|
|
|
cardInfo.setCardState(CardState.Loss);
|
|
|
cardInfoDao.save(cardInfo);
|
|
|
+
|
|
|
+ CardInfoLossRecord cardInfoLossRecord = new CardInfoLossRecord();
|
|
|
+ cardInfoLossRecord.setCardInfo(cardInfo);
|
|
|
+ cardInfoLossRecord.setOperUserAccount(userAccount);
|
|
|
+ cardInfoLossRecord.setOperUserId(userId);
|
|
|
+
|
|
|
+ cardInfoLossRecord.setCardUserId(cardUserAccount.getUserId());
|
|
|
+ cardInfoLossRecord.setCardUserAccount(cardUserAccount);
|
|
|
+ cardInfoLossRecord.setOperationType(CardOperationType.Loss);
|
|
|
+ cardInfoLossRecordDao.save(cardInfoLossRecord);
|
|
|
+
|
|
|
return ResultContent.buildSuccess();
|
|
|
}
|
|
|
|
|
|
@@ -182,6 +242,7 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
|
|
|
Assert.hasText(param.getPassWord(), "密码不能为空");
|
|
|
Assert.hasText(param.getId(), "id不能为空");
|
|
|
String userId = getCurrentUserId();
|
|
|
+ UserAccount userAccount = userCountDao.findTopByUserId(userId);
|
|
|
com.github.microservice.auth.client.content.ResultContent<Void> resultContent = userService.checkLoginPassword(userId, param.getPassWord());
|
|
|
if (resultContent.getState() != ResultState.Success) {
|
|
|
return ResultContent.buildFail("密码错误");
|
|
|
@@ -192,6 +253,16 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
|
|
|
}
|
|
|
cardInfo.setCardState(CardState.Enable);
|
|
|
cardInfoDao.save(cardInfo);
|
|
|
+
|
|
|
+ CardInfoLossRecord cardInfoLossRecord = new CardInfoLossRecord();
|
|
|
+ cardInfoLossRecord.setCardInfo(cardInfo);
|
|
|
+ cardInfoLossRecord.setOperUserAccount(userAccount);
|
|
|
+ cardInfoLossRecord.setOperUserId(userId);
|
|
|
+ cardInfoLossRecord.setCardUserId(userId);
|
|
|
+ cardInfoLossRecord.setCardUserAccount(userAccount);
|
|
|
+ cardInfoLossRecord.setOperationType(CardOperationType.Enable);
|
|
|
+ cardInfoLossRecordDao.save(cardInfoLossRecord);
|
|
|
+
|
|
|
return ResultContent.buildSuccess();
|
|
|
}
|
|
|
|
|
|
@@ -204,18 +275,45 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
|
|
|
@Override
|
|
|
public ResultContent cardEnableByIccId(CardLossParam param) {
|
|
|
Assert.hasText(param.getPassWord(), "密码不能为空");
|
|
|
- Assert.hasText(param.getIccid(), "iccid不能为空");
|
|
|
+ Assert.hasText(param.getCode(), "code不能为空");
|
|
|
+ Assert.hasText(param.getPhone(), "phone不能为空");
|
|
|
+
|
|
|
String userId = getCurrentUserId();
|
|
|
+ UserAccount userAccount = userCountDao.findTopByUserId(userId);
|
|
|
+
|
|
|
com.github.microservice.auth.client.content.ResultContent<Void> resultContent = userService.checkLoginPassword(userId, param.getPassWord());
|
|
|
if (resultContent.getState() != ResultState.Success) {
|
|
|
return ResultContent.buildFail("密码错误");
|
|
|
}
|
|
|
- CardInfo cardInfo = cardInfoDao.findTopByIccid(param.getIccid());
|
|
|
+ CardInfo cardInfo = cardInfoDao.findByCode(param.getCode());
|
|
|
if (ObjectUtils.isEmpty(cardInfo)) {
|
|
|
- return ResultContent.buildFail(String.format("iccid不存在:%s", param.getIccid()));
|
|
|
+ return ResultContent.buildFail(String.format("code不存在:%s", param.getCode()));
|
|
|
}
|
|
|
+
|
|
|
+ // 判断卡片人的信息
|
|
|
+ String cardUserId = cardInfo.getUserId();
|
|
|
+ UserAccount cardUserAccount = userCountDao.findTopByUserId(cardUserId);
|
|
|
+ if (!cardUserAccount.getPhone().equals(param.getPhone())) {
|
|
|
+ return ResultContent.buildFail("持卡人信息和卡号不一致");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (cardInfo.getCardState() == CardState.Enable) {
|
|
|
+ return ResultContent.buildFail(String.format("卡片已接挂:%s", param.getCode()));
|
|
|
+ }
|
|
|
+
|
|
|
cardInfo.setCardState(CardState.Enable);
|
|
|
cardInfoDao.save(cardInfo);
|
|
|
+
|
|
|
+ CardInfoLossRecord cardInfoLossRecord = new CardInfoLossRecord();
|
|
|
+ cardInfoLossRecord.setCardInfo(cardInfo);
|
|
|
+ cardInfoLossRecord.setOperUserAccount(userAccount);
|
|
|
+ cardInfoLossRecord.setOperUserId(userId);
|
|
|
+
|
|
|
+ cardInfoLossRecord.setCardUserId(cardUserAccount.getCreateUserId());
|
|
|
+ cardInfoLossRecord.setCardUserAccount(cardUserAccount);
|
|
|
+ cardInfoLossRecord.setOperationType(CardOperationType.Enable);
|
|
|
+ cardInfoLossRecordDao.save(cardInfoLossRecord);
|
|
|
+
|
|
|
return ResultContent.buildSuccess();
|
|
|
}
|
|
|
|