package com.ruoyi.sim.service.impl; import java.util.ArrayList; import java.util.List; import java.util.Objects; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DateUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import com.ruoyi.sim.mapper.SimMapper; import com.ruoyi.sim.domain.Sim; /** * 模拟器Service业务层处理 * * @author tom * @date 2024-12-13 */ @Service public class SimService { @Autowired private SimMapper simMapper; /** * 查询模拟器 * * @param simId 模拟器主键 * @return 模拟器 */ public Sim selectSimBySimId(Long simId) { return simMapper.selectSimBySimId(simId); } /** * 查询模拟器列表 * * @param sim 模拟器 * @return 模拟器 */ public List selectSimList(Sim sim) { return simMapper.selectSimList(sim); } /** * 新增模拟器 * * @param sim 模拟器 * @return 结果 */ public int insertSim(Sim sim) { sim.setCreateTime(DateUtils.getNowDate()); return simMapper.insertSim(sim); } /** * 修改模拟器 * * @param sim 模拟器 * @return 结果 */ public int updateSim(Sim sim) { sim.setUpdateTime(DateUtils.getNowDate()); return simMapper.updateSim(sim); } /** * 批量删除模拟器 * * @param simIds 需要删除的模拟器主键 * @return 结果 */ public int deleteSimBySimIds(Long[] simIds) { return simMapper.deleteSimBySimIds(simIds); } /** * 删除模拟器信息 * * @param simId 模拟器主键 * @return 结果 */ public int deleteSimBySimId(Long simId) { return simMapper.deleteSimBySimId(simId); } // -------------------------------- tom add -------------------------------- public boolean existBySimId(final Long simId) { if (simId == null) { return false; } if (simId == 0) { return false; } Sim s = selectSimBySimId(simId); if (s == null) { return false; } return true; } public boolean existBySimNum(final String simNum) { if (StringUtils.isEmpty(simNum)) { return false; } Sim s = uniqueBySimNum(simNum); if (s == null) { return false; } return true; } public Sim uniqueBySimNum(final String simNum) { Sim q = new Sim(); q.setSimNum(simNum); List simList = simMapper.selectSimList(q); if (!simList.isEmpty()) { return simList.get(0); } return null; } public List listAll() { return selectSimList(new Sim()); } /** * 获取所有没有被禁用的模拟器列表 * * @return */ public AjaxResult listAllEnableAj() { return AjaxResult.success(listAllEnable()); } public List listAllEnable() { List list = new ArrayList<>(); listAll() .stream() .filter(Objects::nonNull) .filter(s -> !Sim.State.DISABLE.equals(s.getSimState())) .forEach(list::add); return list; } public List listAllOnline() { List list = new ArrayList<>(); listAll() .stream() .filter(Objects::nonNull) .filter(s -> Sim.State.ONLINE.equals(s.getSimState())) .forEach(list::add); return list; } public List listAllEnableBySimType(String simType) { List list = new ArrayList<>(); listAll() .stream() .filter(Objects::nonNull) .filter(s -> !Sim.State.DISABLE.equals(s.getSimState())) .filter(s -> s.getSimType().equals(simType)) .forEach(list::add); return list; } public int updateAllEnableState(String simState) { List list = listAllEnable(); for (Sim sim : list) { sim.setSimState(simState); simMapper.updateSim(sim); } return list.size(); } public List listSimTypes() { return Sim.TYPE_SET.stream().toList(); } public boolean checkSimTypeOk(String simType) { return Sim.TYPE_SET.contains(simType); } public boolean checkState(String simState) { return Sim.STATE_SET.contains(simState); } public int updateSimStateBySimId(Long simId, String simState) { // check if (checkState(simState)) { } // Sim q = selectSimBySimId(simId); if (Objects.isNull(q)) { return 0; } q.setSimState(simState); return updateSim(q); } public boolean isSimStateBySimId(Long simId, String simState) { // check if (checkState(simState)) { } Sim q = selectSimBySimId(simId); if (Objects.isNull(q)) { return false; } return (q.getSimState().equals(simState)); } public boolean isSimDisable(Long simId) { return isSimStateBySimId(simId, Sim.State.DISABLE); } public int updateSimSnBySimId(Long simId, String simSn) { // check if (StringUtils.isEmpty(simSn)) { return 0; } // Sim q = selectSimBySimId(simId); if (Objects.isNull(q)) { return 0; } q.setSimSn(simSn); q.setUpdateTime(DateUtils.getNowDate()); return updateSim(q); } public int updateAllEnableStateInit() { List list = simMapper.selectSimList(new Sim()); int count = 0; for (Sim o : list) { if (o == null) { continue; } if (!Objects.equals(o.getSimState(), Sim.State.DISABLE)) { o.setSimState(Sim.State.ENABLE_INIT); } updateSim(o); count = count + 1; } return count; } @Async("tp-log") public void updateLastSentTime(Sim s) { if (s == null) { return; } s.setLastSentTime(DateUtils.getNowDate()); updateSim(s); } @Async("tp-log") public void updateLastReceivedTime(Sim s) { if (s == null) { return; } s.setLastReceivedTime(DateUtils.getNowDate()); updateSim(s); } }