package com.genersoft.iot.vmp.service.impl; import com.genersoft.iot.vmp.gb28181.bean.SipUserConfig; import com.genersoft.iot.vmp.service.ISipConfigService; import com.genersoft.iot.vmp.storager.dao.SipConfigMapper; import com.genersoft.iot.vmp.storager.dao.dto.AdminAccount; import com.genersoft.iot.vmp.utils.DateUtil; import com.genersoft.iot.vmp.utils.StpAdminUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class SipConfigService implements ISipConfigService { private final static Logger logger = LoggerFactory.getLogger(SipConfigService.class); @Autowired private SipConfigMapper sipConfigMapper; @Override public SipUserConfig getSipConfigByDomain(String domain) { logger.info("查询sip配置信息,domain:" + domain); List sipConfigs = sipConfigMapper.querySipConfigByDomain(domain); // 如果有的话返回第一个 if (sipConfigs == null) { logger.warn("无法找到对应的sip配置信息 {}", domain); return null; } return sipConfigs.get(0); } @Override public PageInfo getSipConfigsById(String adminId, int page, int limit) { PageHelper.startPage(page, limit); logger.info("获取管理员{}, 的sip配置信息", adminId); List sipConfigs; if (StpAdminUtil.hasRole("primary")) { sipConfigs = sipConfigMapper.queryAllSipConfig(); } else { sipConfigs = sipConfigMapper.querySipConfigsByAdminId(adminId); } return new PageInfo<>(sipConfigs); } public List getAllSipConfigsById(String adminId) { List sipConfigs; logger.info("获取管理员{} 所有的sip配置信息", adminId); if (StpAdminUtil.hasRole("primary")) { sipConfigs = sipConfigMapper.queryAllSipConfig(); } else { sipConfigs = sipConfigMapper.querySipConfigsByAdminId(adminId); } return sipConfigs; } @Override public SipUserConfig getSipConfigById(String adminId, String sipId) { return sipConfigMapper.querySipConfigsById(adminId, sipId); } public boolean editSipConfig(String sipId, SipUserConfig sipConfig) { return sipConfigMapper.updateSipConfig(sipConfig, sipId) > 0; } public boolean addSipConfig(String adminId, SipUserConfig sipConfig) { String createTime = ""; sipConfig.setAdminId(adminId); sipConfig.setEnable("1"); sipConfig.setCreateTime(DateUtil.getNow()); return sipConfigMapper.addSipConfig(sipConfig) > 0; } public boolean deleteSipConfig(String sipId) { // todo 删除sip配置 return false; } public boolean unbindSipConfig(String adminId, String sipId) { return sipConfigMapper.adminUnbindSip(adminId, sipId) > 0; } public boolean bindSipConfig(String adminId, String sipId) { // 判断当前管理员是否已经拥有该配置 SipUserConfig sipConfig = sipConfigMapper.querySipConfigsById(adminId, sipId); if (sipConfig != null) { logger.warn("重复绑定sip adminID:{} sipId:{}", adminId, sipId); return false; } return sipConfigMapper.adminBindSip(adminId, sipId) > 0; } public List getSipAdmin(String sipId) { List adminAccount = sipConfigMapper.getSipAdmins(sipId); return adminAccount; } }