diff --git a/src/main/java/vvpkassistant/pk/controller/PkController.java b/src/main/java/vvpkassistant/pk/controller/PkController.java index 3a633ff..b0c08ea 100644 --- a/src/main/java/vvpkassistant/pk/controller/PkController.java +++ b/src/main/java/vvpkassistant/pk/controller/PkController.java @@ -15,7 +15,9 @@ import vvpkassistant.pk.mapper.PkRecordDetailDao; import vvpkassistant.pk.model.PkInfoModel; import vvpkassistant.pk.model.PkRecord; import vvpkassistant.pk.model.PkRecordDetail; +import vvpkassistant.pk.service.PKService; +import javax.annotation.Resource; import java.util.List; import java.util.Map; @@ -24,6 +26,9 @@ import java.util.Map; @RequestMapping("pk") public class PkController { + @Resource + private PKService pkService; + @Autowired private PkInfoDao pkDao; @@ -41,33 +46,10 @@ public class PkController { // 创建pk数据 @PostMapping("addPkData") - public ResponseData addPkData(@RequestBody PkInfoModel pkModel) { + public ResponseData addPkData(@RequestBody PkInfoModel pkModel) { - // 初始可邀请状态为0 - pkModel.setInviteStatus(0); - pkModel.setPinExpireTime(0); + return ResponseData.success(pkService.addPkaddData(pkModel)); - // 获取主播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 = pkDao.selectDataWithAnchorIdAndTime(anchorId, start, end); - - // 判断该主播在当日是否已发布过pk信息 - if (pkInfoModels.size() > 0) { - return ResponseData.error(ResponseInfo.ERROR.getCode(),"该主播当日已有pk信息"); - } - - int insert = pkDao.insert(pkModel); - return insert == 1 ? ResponseData.success(pkModel) : ResponseData.error(ResponseInfo.ERROR.getCode(),null); } // 更新pk信息 diff --git a/src/main/java/vvpkassistant/pk/service/PKService.java b/src/main/java/vvpkassistant/pk/service/PKService.java new file mode 100644 index 0000000..2eb373d --- /dev/null +++ b/src/main/java/vvpkassistant/pk/service/PKService.java @@ -0,0 +1,12 @@ +package vvpkassistant.pk.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import vvpkassistant.pk.model.PkInfoModel; + +/* + * @author: ziin + * @date: 2025/8/4 13:53 + */ +public interface PKService extends IService { + PkInfoModel addPkaddData(PkInfoModel pkModel); +} diff --git a/src/main/java/vvpkassistant/pk/service/PKServiceImpl.java b/src/main/java/vvpkassistant/pk/service/PKServiceImpl.java new file mode 100644 index 0000000..287f2f8 --- /dev/null +++ b/src/main/java/vvpkassistant/pk/service/PKServiceImpl.java @@ -0,0 +1,57 @@ +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); + } +}