完成刷卡挂失接口

This commit is contained in:
wen 2022-02-13 21:43:38 +08:00
parent a13af4841e
commit 95b1e9f2f1
4 changed files with 182 additions and 1 deletions

View File

@ -136,5 +136,18 @@ public class XhpcCardController extends BaseController {
return xhpcCardService.queryOperatorUser();
}
/**
* report the loss of card
*
* @author WH
* @date 2022/2/12 16:58
* @since version-1.0
*/
@PatchMapping("/loss")
public R<Object> reportTheLossOfCard(@RequestParam("cardId") Integer cardId) {
return xhpcCardService.reportTheLossOfCard(cardId);
}
}

View File

@ -0,0 +1,95 @@
package com.xhpc.card.domain;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* t_iccard_log的log的实体类
*
* @author WH
* @date 2022/2/13 15:59
* @since version-1.0
*/
@NoArgsConstructor
@Data
public class CardLogInfo {
/**
* cardInfo
*/
@JsonProperty("cardInfo")
private CardInfoDTO cardInfo;
/**
* CardInfoDTO
*/
@NoArgsConstructor
@Data
public static class CardInfoDTO {
/**
* cardID
*/
@JsonProperty("cardID")
private String cardID;
/**
* cardNo
*/
@JsonProperty("cardNo")
private String cardNo;
/**
* cardType
*/
@JsonProperty("cardType")
private Integer cardType;
/**
* password
*/
@JsonProperty("password")
private Object password;
/**
* userIndex
*/
@JsonProperty("userIndex")
private Integer userIndex;
/**
* corpNo
*/
@JsonProperty("corpNo")
private String corpNo;
/**
* cashPledge
*/
@JsonProperty("cashPledge")
private Integer cashPledge;
/**
* balance
*/
@JsonProperty("balance")
private Integer balance;
/**
* status
*/
@JsonProperty("status")
private Integer status;
/**
* prepay
*/
@JsonProperty("prepay")
private Integer prepay;
}
/**
* operatorId
*/
@JsonProperty("operatorId")
private Long operatorId;
/**
* operate
*/
@JsonProperty("operate")
private Integer operate;
}

View File

@ -110,4 +110,13 @@ public interface IXhpcCardService {
*/
R<List<Map<String, Object>>> queryOperatorUser();
/**
* report the loss of card
*
* @author WH
* @date 2022/2/13 13:30
* @since version-1.0
*/
R<Object> reportTheLossOfCard(Integer cardId);
}

View File

@ -1,5 +1,6 @@
package com.xhpc.card.service.impl;
import cn.hutool.json.JSONUtil;
import com.xhpc.card.domain.*;
import com.xhpc.card.mapper.*;
import com.xhpc.card.pojo.*;
@ -46,7 +47,9 @@ public class XhpcCardServiceImpl implements IXhpcCardService {
@Resource
private XhpcCustomersPersonnelMapper xhpcCustomersPersonnelMapper;
@Resource
TokenService tokenService;
private TokenService tokenService;
@Resource
private TIccardLogMapper tIccardLogMapper;
@Override
public R cardStartup(String cardno, String serialNumber, String rateModelId) {
@ -386,6 +389,67 @@ public class XhpcCardServiceImpl implements IXhpcCardService {
return R.ok(dataList);
}
@Override
@Transactional(rollbackFor = Exception.class)
public R<Object> reportTheLossOfCard(Integer cardId) {
if (cardId == null) {
return R.fail("无效cardId");
}
TIccardInfo tIccardInfo = tIccardInfoMapper.selectByPrimaryKey(cardId);
if (tIccardInfo.getStatus() == 3) {
return R.fail("该卡已经挂失");
}
tIccardInfo.setStatus(3);
tIccardInfoMapper.updateByPrimaryKeySelective(tIccardInfo);
//write log info
tIccardInfo = tIccardInfoMapper.selectByPrimaryKey(cardId);
TIccardLog tIccardLog = new TIccardLog();
tIccardLog.setUniqueid(tIccardInfo.getCardno());
tIccardLog.setType((byte) 0);
tIccardLog.setOperate((byte) 5);
tIccardLog.setOperatorid(Integer.valueOf(tIccardInfo.getCorpno()));
tIccardLog.setCreatetime(new Date());
CardLogInfo cardLogInfo = new CardLogInfo();
/**
* {
* "cardInfo": {
* "cardID": "A721DCD7",
* "cardNo": "2020101304",
* "cardType": 0,
* "password": null,
* "userIndex": 0,
* "corpNo": "100002",
* "cashPledge": 0,
* "balance": 0,
* "status": 3,
* "prepay": 0
* },
* "operatorId": 1044,
* "operate": 5
* }
*/
cardLogInfo.setOperate(5);
cardLogInfo.setOperatorId(Long.valueOf(tIccardInfo.getCorpno()));
CardLogInfo.CardInfoDTO cardInfoDTO = new CardLogInfo.CardInfoDTO();
cardInfoDTO.setCardID(tIccardInfo.getCardid());
cardInfoDTO.setCardNo(tIccardInfo.getCardno());
cardInfoDTO.setCardType(tIccardInfo.getCardtype());
cardInfoDTO.setPassword(tIccardInfo.getPassword());
cardInfoDTO.setUserIndex(tIccardInfo.getUserindex());
cardInfoDTO.setCorpNo(tIccardInfo.getCorpno());
cardInfoDTO.setCashPledge(tIccardInfo.getCashpledge());
cardInfoDTO.setBalance(tIccardInfo.getBalance());
cardInfoDTO.setStatus(tIccardInfo.getStatus());
// todo prepay doesn't have
cardInfoDTO.setPrepay(null);
cardLogInfo.setCardInfo(cardInfoDTO);
String str = JSONUtil.toJsonStr(cardLogInfo);
tIccardLog.setLog(str);
tIccardLogMapper.insertSelective(tIccardLog);
return R.ok();
}
private void fillUserInfo(CardUserInfo cardUserInfo, Map<String, Object> userData) {
cardUserInfo.setCardSerialNumber((String) userData.get("cardID"));