mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 02:55:04 +08:00
新增 后管查询sim卡流量套餐信息接口
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
/**
|
||||
* 后管首页基本信息查询
|
||||
*
|
||||
|
||||
@@ -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-999),0表示无限周期
|
||||
* @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";
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 后管首页基本信息查询
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user