feat: 增加同步sim卡数据功能

dev
huangfeng 4 months ago
parent aa6e5a9a16
commit 21e328e8ba

@ -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<String> syncAll() {
simcardService.syncAll();
return ResponseReult.success("OK");
}
}

@ -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<Integer> 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);
}
}

@ -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<Integer, Terminals> terminalMap = newCacheService.getTerminalMap();
Iterator<Integer> 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);
}
}
}
}

@ -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();
}

Loading…
Cancel
Save