package vvpkassistant.pk.service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import vvpkassistant.Data.ResponseData; import vvpkassistant.Data.ResponseInfo; import vvpkassistant.Tools.VVTools; import vvpkassistant.common.ErrorCode; import vvpkassistant.exception.BusinessException; import vvpkassistant.pk.mapper.PkInfoDao; import vvpkassistant.pk.model.PkInfoModel; import javax.annotation.Resource; import java.util.List; import java.util.Map; /* * @author: ziin * @date: 2025/8/4 13:54 */ @Service public class PKServiceImpl extends ServiceImpl implements PKService { @Resource private PkInfoDao pkInfoDao; @Override public PkInfoModel addPkaddData(PkInfoModel pkModel) { // 初始可邀请状态为0 pkModel.setInviteStatus(0); pkModel.setPinExpireTime(0); // 获取主播id String anchorId = pkModel.getAnchorId(); // 查询当天是否存在该主播发布的pk信息。 Integer pkTime = pkModel.getPkTime(); // 根据设置的pk时间。查询出当天的开始时间和结束时间 Map dayStartAndEndTimestamp = VVTools.getDayStartAndEndTimestamp(pkTime); Long start = dayStartAndEndTimestamp.get("start"); Long end = dayStartAndEndTimestamp.get("end"); // 查询主播在当天是否有发布过pk信息 List pkInfoModels = pkInfoDao.selectDataWithAnchorIdAndTime(anchorId, start, end); // 判断该主播在当日是否已发布过pk信息 if (!pkInfoModels.isEmpty()) { throw new BusinessException(ErrorCode.SYSTEM_ERROR,"该主播当日已有pk信息"); } if (pkInfoDao.insert(pkModel) == 1) { return pkModel; }else throw new BusinessException(ErrorCode.SYSTEM_ERROR); } }