1.Pk添加服务层

This commit is contained in:
2025-08-04 14:10:04 +08:00
parent 252b978ed4
commit 8d6e6b3002
3 changed files with 76 additions and 25 deletions

View File

@@ -15,7 +15,9 @@ import vvpkassistant.pk.mapper.PkRecordDetailDao;
import vvpkassistant.pk.model.PkInfoModel; import vvpkassistant.pk.model.PkInfoModel;
import vvpkassistant.pk.model.PkRecord; import vvpkassistant.pk.model.PkRecord;
import vvpkassistant.pk.model.PkRecordDetail; import vvpkassistant.pk.model.PkRecordDetail;
import vvpkassistant.pk.service.PKService;
import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -24,6 +26,9 @@ import java.util.Map;
@RequestMapping("pk") @RequestMapping("pk")
public class PkController { public class PkController {
@Resource
private PKService pkService;
@Autowired @Autowired
private PkInfoDao pkDao; private PkInfoDao pkDao;
@@ -41,33 +46,10 @@ public class PkController {
// 创建pk数据 // 创建pk数据
@PostMapping("addPkData") @PostMapping("addPkData")
public ResponseData<Object> addPkData(@RequestBody PkInfoModel pkModel) { public ResponseData<PkInfoModel> addPkData(@RequestBody PkInfoModel pkModel) {
// 初始可邀请状态为0 return ResponseData.success(pkService.addPkaddData(pkModel));
pkModel.setInviteStatus(0);
pkModel.setPinExpireTime(0);
// 获取主播id
String anchorId = pkModel.getAnchorId();
// 查询当天是否存在该主播发布的pk信息。
Integer pkTime = pkModel.getPkTime();
// 根据设置的pk时间。查询出当天的开始时间和结束时间
Map<String, Long> dayStartAndEndTimestamp = VVTools.getDayStartAndEndTimestamp(pkTime);
Long start = dayStartAndEndTimestamp.get("start");
Long end = dayStartAndEndTimestamp.get("end");
// 查询主播在当天是否有发布过pk信息
List<PkInfoModel> 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信息 // 更新pk信息

View File

@@ -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> {
PkInfoModel addPkaddData(PkInfoModel pkModel);
}

View File

@@ -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<PkInfoDao, PkInfoModel> 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<String, Long> dayStartAndEndTimestamp = VVTools.getDayStartAndEndTimestamp(pkTime);
Long start = dayStartAndEndTimestamp.get("start");
Long end = dayStartAndEndTimestamp.get("end");
// 查询主播在当天是否有发布过pk信息
List<PkInfoModel> 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);
}
}