diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/SimController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/SimController.java index dbfa512..67bc15b 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/SimController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/SimController.java @@ -9,6 +9,7 @@ import com.shxy.xymanager_common.constant.Constants; import com.shxy.xymanager_common.entity.SimInfo; import com.shxy.xymanager_service.excel.*; import com.shxy.xymanager_service.service.SimService; +import com.shxy.xymanager_service.service.TerminalSimcardService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -25,6 +26,8 @@ public class SimController extends BaseController { @Resource SimService service; + @Resource + TerminalSimcardService simcardService; @PostMapping("importSim") @ApiOperation("导入sim") @@ -70,5 +73,11 @@ public class SimController extends BaseController { return ResponseReult.success(result); } + @PostMapping("syncAll") + @ApiOperation("同步所有sim卡数据") + public ResponseReult syncAll() { + simcardService.syncAll(); + return ResponseReult.success("OK"); + } } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/CmdServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/CmdServiceImpl.java index 6052246..47f8410 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/CmdServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/CmdServiceImpl.java @@ -15,6 +15,7 @@ import com.shxy.xymanager_common.vo.TerminalSelectVo; import com.shxy.xymanager_dao.dao.*; import com.shxy.xymanager_service.service.CmdService; import com.shxy.xymanager_service.service.TerminalService; +import com.shxy.xymanager_service.service.TerminalSimcardService; import com.shxy.xymanager_service.service.UserService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -54,7 +55,7 @@ public class CmdServiceImpl implements CmdService { @Resource MntnRawReportsMapper rawReportsMapper; @Resource - TerminalSimcardMapper simcardMapper; + TerminalSimcardService simcardService; private List getTerminalLit(String cmdid) { TerminalSelectVo vo = new TerminalSelectVo(); @@ -906,29 +907,7 @@ public class CmdServiceImpl implements CmdService { simcard2 = (String) map.get("simcard2"); simcard2 = simcard2.replaceAll("null", "").trim(); } - if (StringUtils.isNotBlank(simcard1) || StringUtils.isNotBlank(simcard2)) { - TerminalSimcard card = simcardMapper.selectByPrimaryKey(termId); - if (card == null) { - card = new TerminalSimcard(); - card.setTermId(termId); - if (StringUtils.isNotBlank(simcard1)) { - card.setIccid1(simcard1); - } - if (StringUtils.isNotBlank(simcard2)) { - card.setIccid2(simcard2); - } - simcardMapper.insert(card); - } else { - if (StringUtils.isNotBlank(simcard1)) { - card.setIccid1(simcard1); - } - if (StringUtils.isNotBlank(simcard2)) { - card.setIccid2(simcard2); - } - simcardMapper.updateByPrimaryKey(card); - } - } - + simcardService.syncOne(termId, simcard1, simcard2); } } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalSimcardServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalSimcardServiceImpl.java index 7683685..98cb388 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalSimcardServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalSimcardServiceImpl.java @@ -1,13 +1,20 @@ package com.shxy.xymanager_service.impl; +import com.shxy.xymanager_common.entity.SimInfo; import com.shxy.xymanager_common.entity.TerminalSimcard; +import com.shxy.xymanager_common.entity.Terminals; +import com.shxy.xymanager_dao.dao.SimInfoMapper; import com.shxy.xymanager_dao.dao.TerminalSimcardMapper; +import com.shxy.xymanager_service.service.NewCacheService; import com.shxy.xymanager_service.service.TerminalSimcardService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Iterator; +import java.util.Map; @Service @Slf4j @@ -17,6 +24,10 @@ public class TerminalSimcardServiceImpl implements TerminalSimcardService { @Resource TerminalSimcardMapper simcardMapper; + @Resource + SimInfoMapper simInfoMapper; + @Resource + NewCacheService newCacheService; @Override public TerminalSimcard getSimcard(Integer termId) { @@ -33,4 +44,87 @@ public class TerminalSimcardServiceImpl implements TerminalSimcardService { simcardMapper.updateByPrimaryKey(simcard); } } + + @Override + public void syncOne(Integer termId, String iccid1, String iccid2) { + TerminalSimcard card = simcardMapper.selectByPrimaryKey(termId); + if (card == null) { + card = new TerminalSimcard(); + card.setTermId(termId); + card.setIccid1(iccid1); + card.setIccid2(iccid2); + this.syncOne(card); + simcardMapper.insert(card); + } else { + boolean changed = false; + if (StringUtils.isNotBlank(iccid1)) { + if (!iccid1.equals(card.getIccid1())) { + card.setIccid1(iccid1); + changed = true; + } + } else { + if (StringUtils.isNotBlank(card.getIccid1())) { + card.setIccid1(iccid1); + changed = true; + } + } + if (StringUtils.isNotBlank(iccid2)) { + if (!iccid2.equals(card.getIccid2())) { + card.setIccid2(iccid2); + changed = true; + } + } else { + if (StringUtils.isNotBlank(card.getIccid2())) { + card.setIccid2(iccid2); + changed = true; + } + } + if (changed) { + this.syncOne(card); + simcardMapper.updateByPrimaryKey(card); + } + } + } + + @Override + public void syncOne(TerminalSimcard simcard) { + if (StringUtils.isNotBlank(simcard.getIccid1())) { + SimInfo sim = simInfoMapper.selectByPrimaryKey(simcard.getIccid1()); + if (sim != null) { + simcard.setMsisdn1(sim.getMsisdn()); + simcard.setImsi1(sim.getImsi()); + simcard.setType1(sim.getType()); + } + } else { + simcard.setMsisdn1(null); + simcard.setImsi1(null); + simcard.setType1(null); + } + if (StringUtils.isNotBlank(simcard.getIccid2())) { + SimInfo sim = simInfoMapper.selectByPrimaryKey(simcard.getIccid2()); + if (sim != null) { + simcard.setMsisdn2(sim.getMsisdn()); + simcard.setImsi2(sim.getImsi()); + simcard.setType2(sim.getType()); + } + } else { + simcard.setMsisdn2(null); + simcard.setImsi2(null); + simcard.setType2(null); + } + } + + @Override + public void syncAll() { + Map terminalMap = newCacheService.getTerminalMap(); + Iterator it = terminalMap.keySet().iterator(); + while (it.hasNext()) { + Integer termId = it.next(); + TerminalSimcard simcard = simcardMapper.selectByPrimaryKey(termId); + if (simcard != null) { + this.syncOne(simcard); + simcardMapper.updateByPrimaryKey(simcard); + } + } + } } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalSimcardService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalSimcardService.java index 790fc80..c9c4213 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalSimcardService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalSimcardService.java @@ -8,4 +8,10 @@ public interface TerminalSimcardService { TerminalSimcard getSimcard(Integer termId); void updateSimcard(TerminalSimcard simcard); + + void syncOne(Integer termId, String iccid1, String iccid2); + + void syncOne(TerminalSimcard simcard); + + void syncAll(); }