diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileSimInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileSimInfoMapper.java index 4a637db31..01add1bbd 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileSimInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileSimInfoMapper.java @@ -94,4 +94,6 @@ public interface PileSimInfoMapper { PileSimInfo getBasicInfoByIccId(@Param("iccId") String iccId); void updateSimCardInfoBatch(@Param("list") List list); + + String selectIdByIccId(String iccId); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 825a28a96..0082625fd 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -3354,7 +3354,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { String merchantIdByAppId = pileMerchantInfoService.getFirstLevelMerchantIdByAppId(dto.getAppId()); String merchantIdByMerchantId = pileMerchantInfoService.getFirstLevelMerchantIdByMerchantId(stationInfo.getMerchantId()); if (!StringUtils.equals(merchantIdByAppId, merchantIdByMerchantId)) { - throw new BusinessException("", "当前桩运营商与小程序所属运营商不一致"); + throw new BusinessException("", "当前桩运营商与小程序所属运营商不一致"); } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java index cd7d67006..4749f4021 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java @@ -24,6 +24,7 @@ import com.jsowell.pile.dto.QueryPileDTO; import com.jsowell.pile.dto.ReplaceMerchantStationDTO; import com.jsowell.pile.mapper.PileBasicInfoMapper; import com.jsowell.pile.mapper.PileMerchantInfoMapper; +import com.jsowell.pile.mapper.PileSimInfoMapper; import com.jsowell.pile.service.*; import com.jsowell.pile.vo.base.MerchantInfoVO; import com.jsowell.pile.vo.base.PileInfoVO; @@ -74,6 +75,9 @@ public class PileBasicInfoServiceImpl implements IPileBasicInfoService { @Autowired private SimCardService simCardService; + @Autowired + private PileSimInfoMapper pileSimInfoMapper; + @Autowired private PileMerchantInfoMapper pileMerchantInfoMapper; @@ -550,6 +554,57 @@ public class PileBasicInfoServiceImpl implements IPileBasicInfoService { return stringBuilder.toString(); } + public void updatePileSimInfoV2(String pileSn, String iccid) { + // 清缓存 + cleanRedisCache(pileSn); + PileBasicInfo basicInfo = selectPileBasicInfoBySN(pileSn); + if (basicInfo == null) { + return; + } + // 去卡运营商查询流量等信息 + List simCardVOS = simCardService.searchByLoop(Lists.newArrayList(iccid)); + // 查询数据库中是否有此卡 + PileSimInfo simInfo = pileSimInfoService.getBasicInfoByIccId(iccid); + + SimCardVO simCardVO = null; + if (CollectionUtils.isEmpty(simCardVOS)) { + // 已对接的卡商没有信息 + if (simInfo == null) { + // 数据库中也没有此卡信息,说明为新卡,新增一条卡数据 + simInfo = PileSimInfo.builder() + .iccid(iccid) + .build(); + pileSimInfoService.insertPileSimInfo(simInfo); + } + }else { + // 卡商有信息,先获取最新信息 + simCardVO = simCardVOS.get(0); + PileSimInfo simBasicInfo = PileSimInfo.builder() + .iccid(iccid) + .name(simCardVO.getName()) + .simSupplier(simCardVO.getSimCardFactory()) + .expireTime(DateUtils.parseDate(simCardVO.getExpiredTime())) + .operator(simCardVO.getSimCardOperator()) + .status(simCardVO.getSimCardStatus()) + .surplusData(String.valueOf(simCardVO.getResidualFlowRate())) + .totalData(String.valueOf(simCardVO.getPackageCapacity())) + .build(); + if (simInfo == null) { + // 数据库中没有此卡,新增 + pileSimInfoService.insertPileSimInfo(simBasicInfo); + }else { + // 更新 + pileSimInfoService.updatePileSimInfo(simBasicInfo); + } + // 再根据iccid查询当前卡id + String simId = pileSimInfoMapper.selectIdByIccId(iccid); + basicInfo.setSimId(Long.parseLong(simId)); + } + // 统一更新桩基本信息表 + updateSimInfo(basicInfo); + + } + @Override public void updatePileSimInfo(String pileSn, String iccid) { // 清缓存 diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileSimInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileSimInfoMapper.xml index 7614d62f0..50a78174c 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileSimInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileSimInfoMapper.xml @@ -203,4 +203,8 @@ where iccid = #{simCardVO.iccId} + + \ No newline at end of file