新增 后管查询sim卡流量套餐信息接口

This commit is contained in:
Lemon
2024-11-04 11:36:44 +08:00
parent 340761e818
commit 4e414b5f39
4 changed files with 114 additions and 9 deletions

View File

@@ -255,8 +255,9 @@ public class LoginRequestHandler extends AbstractYkcHandler {
CompletableFuture.runAsync(() -> {
// 充电桩使用的sim卡把信息存库
try {
pileBasicInfoService.updatePileSimInfo(pileSn, iccid);
// pileBasicInfoService.updatePileSimInfo(pileSn, iccid);
// pileBasicInfoService.updatePileSimInfoV2(pileSn, iccid);
pileBasicInfoService.bindPileSimCard(pileSn, iccid);
} catch (Exception e) {
log.error("更新充电桩sim卡信息失败pileSn:{}, iccid:{}", pileSn, iccid, e);
}

View File

@@ -159,6 +159,9 @@ public interface PileBasicInfoService {
void updatePileSimInfo(String pileSn, String iccid);
void updatePileSimInfoV2(String pileSn, String iccid);
public void bindPileSimCard(String pileSn, String iccId);
/**
* 后管首页基本信息查询
*

View File

@@ -8,11 +8,13 @@ import com.jsowell.common.enums.sim.SimCardStatusCorrespondEnum;
import com.jsowell.common.enums.sim.SimSupplierEnum;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.StringUtils;
import com.jsowell.common.util.http.HttpUtils;
import com.jsowell.common.util.id.IdUtils;
import com.jsowell.common.util.sim.SimCardUtils;
import com.jsowell.common.util.sim.XunZhongSimUtils;
import com.jsowell.pile.domain.PileSimInfo;
import com.jsowell.pile.vo.web.*;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
@@ -71,6 +73,7 @@ public class SimCardService {
/**
* 不知道iccid属于哪家供应商就用这个方法查
*
* @param iccids
* @return
*/
@@ -92,9 +95,79 @@ public class SimCardService {
return resultList;
}
/**
* 通过iccId去两个官方平台查询流量卡具体数据
*
* @param iccId
* @return
*/
SimCardVO searchOfficialWebsiteSimInfo(String iccId) {
SimCardVO vo = new SimCardVO();
List<String> iccIds = Lists.newArrayList(iccId);
// 查XunZhong
List<SimCardVO> simCardVOS = XunZhongGetSimInfoByIccIds(iccIds);
if (CollectionUtils.isNotEmpty(simCardVOS)) {
vo = simCardVOS.get(0);
} else {
// 查WuLian平台
List<SimCardVO> wuLianSimData = WuLianGetSimInfoByIccIds(iccIds);
if (CollectionUtils.isEmpty(wuLianSimData)) {
return vo;
}
vo = wuLianSimData.get(0);
}
return vo;
}
/**
* 通过iccId查询数据2024.11.1 后管用)
*
* @param iccId
* @return
*/
SimCardVO getSimCardInfoByIccId(String iccId) {
PileSimInfo pileSimInfo = pileSimInfoService.getBasicInfoByIccId(iccId);
// 调用官方数据接口查询最新sim卡数据
SimCardVO simCardVO = searchOfficialWebsiteSimInfo(iccId);
if (simCardVO == null) {
throw new BusinessException(ReturnCodeEnum.CODE_SELECT_INFO_IS_NULL);
}
if (pileSimInfo == null) {
// 数据库中没有此卡数据,进行新增
pileSimInfo = PileSimInfo.builder()
.name(simCardVO.getName())
.iccid(simCardVO.getIccId())
.status(simCardVO.getSimCardStatus())
.simSupplier(simCardVO.getSimCardFactory())
.totalData(String.valueOf(simCardVO.getPackageCapacity()))
.surplusData(String.valueOf(simCardVO.getResidualFlowRate()))
.expireTime(DateUtils.parseDate(simCardVO.getExpiredTime()))
.operator(simCardVO.getSimCardOperator())
.build();
pileSimInfoService.insertPileSimInfo(pileSimInfo);
} else {
// 将查到的流量套餐等最新数据更新到数据库
pileSimInfo.setName(simCardVO.getName());
pileSimInfo.setIccid(simCardVO.getIccId());
pileSimInfo.setStatus(simCardVO.getSimCardStatus());
pileSimInfo.setSimSupplier(simCardVO.getSimCardFactory());
pileSimInfo.setTotalData(String.valueOf(simCardVO.getPackageCapacity()));
pileSimInfo.setSurplusData(String.valueOf(simCardVO.getResidualFlowRate()));
pileSimInfo.setExpireTime(DateUtils.parseDate(simCardVO.getExpiredTime()));
pileSimInfo.setOperator(simCardVO.getSimCardOperator());
pileSimInfoService.updatePileSimInfo(pileSimInfo);
}
return simCardVO;
}
/**
* 批量续费(后管调用此方法)
* @param iccIds 卡号
*
* @param iccIds 卡号
* @param cycleNumber 续费周期
*/
public List<SimRenewResultVO> renewSimByLoop(List<String> iccIds, int cycleNumber) {
@@ -123,9 +196,11 @@ public class SimCardService {
/**
* 根据不同的公司执行不同的续费方法
* @param code SimSupplierEnum.getCode()
* @param iccId 卡号
*
* @param code 👇👇👇👇👇👇👇
* @param iccId 卡号
* @param cycleNumber 续费周期
* @see SimSupplierEnum
*/
private SimRenewResultVO renewSimBySupplier(String code, String iccId, int cycleNumber) {
SimRenewResultVO vo = new SimRenewResultVO();
@@ -138,7 +213,7 @@ public class SimCardService {
vo.setSimSuppler(SimSupplierEnum.XUN_ZHONG.getName());
XunZhongSimRenewal(Lists.newArrayList(iccId), cycleNumber);
vo.setResult(true);
}catch (BusinessException e) {
} catch (BusinessException e) {
vo.setResult(false);
vo.setReason(e.getMessage());
}
@@ -149,7 +224,7 @@ public class SimCardService {
vo.setSimSuppler(SimSupplierEnum.WU_LIAN_INTERNET.getName());
WuLianSimRenew(Lists.newArrayList(iccId), cycleNumber);
vo.setResult(true);
}catch (BusinessException e){
} catch (BusinessException e) {
vo.setResult(false);
vo.setReason(e.getMessage());
}
@@ -158,10 +233,10 @@ public class SimCardService {
}
/**
* 讯众 内部接口
* 通过iccIds查询讯众Sim卡信息
*
* @param iccIds
*/
public List<SimCardVO> XunZhongGetSimInfoByIccIds(List<String> iccIds) {
@@ -237,6 +312,7 @@ public class SimCardService {
/**
* 讯众官方接口
* 获取sim卡详细信息
*
* @param iccIds Sim卡集合
* @return
*/
@@ -267,6 +343,7 @@ public class SimCardService {
/**
* 讯众官方接口
* 获取流量池信息
*
* @return
*/
public String getTrafficPoolInfo() {
@@ -288,7 +365,8 @@ public class SimCardService {
/**
* 讯众官方接口
* sim卡续期
* @param iccIds 需要续期的sim卡
*
* @param iccIds 需要续期的sim卡
* @param cycleNumber 续费周期0-9990表示无限周期
* @return
*/
@@ -387,7 +465,7 @@ public class SimCardService {
String operator = "";
if (StringUtils.contains(packageName, "移动")) {
operator = "china_mobile";
}else if (StringUtils.contains(packageName, "电信")) {
} else if (StringUtils.contains(packageName, "电信")) {
operator = "china_telecom";
} else if (StringUtils.contains(packageName, "联通")) {
operator = "china_unicom";

View File

@@ -783,6 +783,29 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
updateSimInfo(basicInfo);
}
/**
* 绑定桩与sim卡的信息仅0x01中调用
* @param pileSn
* @param iccId
*/
@Override
public void bindPileSimCard(String pileSn, String iccId) {
PileBasicInfo basicInfo = selectPileBasicInfoBySN(pileSn);
if (basicInfo == null) {
return;
}
String basicInfoIccId = basicInfo.getIccId();
if (!StringUtils.equals(iccId, basicInfoIccId)) {
// 如果表中存储的sim卡与当前登录的sim卡不一致修改数据库
// 清缓存
cleanRedisCache(pileSn);
// 将桩与sim卡进行绑定
basicInfo.setIccId(iccId);
updatePileBasicInfo(basicInfo);
}
}
/**
* 后管首页基本信息查询
*