package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.dao.AgoraStudioDescDao; import cn.com.goldenwater.dcproj.model.AgoraStudioDesc; import cn.com.goldenwater.dcproj.model.BisInspAllRlationPers; import cn.com.goldenwater.dcproj.param.AgoraStudioDescParam; import cn.com.goldenwater.dcproj.service.AgoraStudioDescService; import cn.com.goldenwater.dcproj.service.BisInspAllRlationPersService; import cn.com.goldenwater.dcproj.utils.Builder; import cn.com.goldenwater.dcproj.utils.UserMsgSectrityUtils; import cn.com.goldenwater.target.CheckException; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.Optional; import static cn.com.goldenwater.dcproj.util.CheckUtil.check; import static cn.com.goldenwater.dcproj.util.CheckUtil.notNull; /** * @author lhc * @date 2021-7-4 */ @Service @Transactional public class AgoraStudioDescServiceImpl extends AbstractCrudService implements AgoraStudioDescService { private Logger logger = LoggerFactory.getLogger(getClass()); private static final String CHANNEL_NAME_PREFIX = "CN_"; @Autowired private AgoraStudioDescDao agoraStudioDescDao; @Autowired private BisInspAllRlationPersService bisInspAllRlationPersService; public AgoraStudioDescServiceImpl(AgoraStudioDescDao agoraStudioDescDao) { super(agoraStudioDescDao); this.agoraStudioDescDao = agoraStudioDescDao; } @Override public int insert(AgoraStudioDesc agoraStudioDesc) { insertAs(agoraStudioDesc); return 1; } @Override public int update(AgoraStudioDesc agoraStudioDesc) { agoraStudioDesc.setUptm(new Date()); return this.agoraStudioDescDao.update(agoraStudioDesc); } @Override public int delete(String id) { return this.agoraStudioDescDao.delete(id); } @Override public AgoraStudioDesc insertAs(AgoraStudioDesc agoraStudioDesc) { check(StringUtils.isNotBlank(agoraStudioDesc.getPersId()), "persId,no"); BisInspAllRlationPers per = bisInspAllRlationPersService.getById(agoraStudioDesc.getPersId()); Optional.ofNullable(per).orElseThrow(() -> new CheckException("用户ID不正确!")); String uuid = CHANNEL_NAME_PREFIX + agoraStudioDesc.getPersId(); // 查重 AgoraStudioDesc ap = agoraStudioDescDao.get(uuid); if (null != ap) { agoraStudioDesc.setId(ap.getId()); update(agoraStudioDesc); return agoraStudioDesc; } agoraStudioDesc.setId(uuid); agoraStudioDesc.setChannelName(uuid); agoraStudioDesc.setPersName(per.getPersName()); agoraStudioDesc.setIntm(new Date()); agoraStudioDesc.setUptm(new Date()); agoraStudioDesc.setState("0"); agoraStudioDesc.setDataStat("0"); this.agoraStudioDescDao.insert(agoraStudioDesc); return agoraStudioDesc; } @Override public BisInspAllRlationPers getByPers(String channelName) { AgoraStudioDesc agoraStudioDesc = agoraStudioDescDao.getBy(Builder .of(AgoraStudioDescParam::new) .with(AgoraStudioDescParam::setChannelName, channelName) .build()); notNull(agoraStudioDesc, "未找到直播间!"); BisInspAllRlationPers per = bisInspAllRlationPersService.getById(agoraStudioDesc.getPersId()); Optional.ofNullable(per).orElseThrow(() -> new CheckException("主播信息异常")); per.setPwd(null); per.setMobilenumb(UserMsgSectrityUtils.blurPhoneNotExc(per.getMobilenumb())); return per; } }