1.修改pk列表接口

This commit is contained in:
2025-08-04 14:44:45 +08:00
parent 451fdc4556
commit ba60cfb550
3 changed files with 61 additions and 52 deletions

View File

@@ -65,58 +65,7 @@ public class PkController {
// pk列表 // pk列表
@PostMapping("pkList") @PostMapping("pkList")
public ResponseData<Object> pkList(@RequestBody Map<String,Object> map) { public ResponseData<Object> pkList(@RequestBody Map<String,Object> map) {
return ResponseData.success(pkService.getPKList(map));
Integer page = (Integer) map.get("page");
Integer size = (Integer) map.get("size");
Map<String,Object> condition = (Map<String, Object>) map.get("condition");
Map<String, Long> todayTimeStampMap = VVTools.startAndEndTimeStampForToday();
Long start = VVTools.currentTimeStamp();
Long end = todayTimeStampMap.get("end");
List<PkInfoModel> pkModels = pkDao.selectPkInfoByCondition(page * size, size, condition, start, end);
long currentTimeStamp = VVTools.currentTimeStamp();
//如果传了用户id
if (map.containsKey("userId")) {
Long begin = VVTools.currentTimeStamp();
Integer userId = Integer.valueOf(map.get("userId").toString());
// 查询出当前用户大于等于今天的已接受邀请的pk数据
List<PkRecord> pkRecords = recordDao.fetchDataFromTodayWithUserId(userId, begin);
// 遍历查询出的数据。如果文章的id相同。就显示完整的主播名称
for (PkInfoModel pkModel : pkModels) {
pkModel.setDisPlayId(pkModel.getAnchorId());
// 设置是否为置顶
pkModel.setIsPin(pkModel.getPinExpireTime() > currentTimeStamp);
// 如果文章的发布者不是当前登录主播。
if (pkModel.getSenderId().intValue() != userId) {
boolean showId = false;
// 查找是否和当前登录的账号有pk关系。
for (PkRecord pkRecord : pkRecords) {
// 如果当前用户是邀请pk的并且对方已接受pk也可以看到主播id
if (pkRecord.getUserIdB().intValue() == userId &&
pkRecord.getPkIdA().intValue() == pkModel.getId().intValue() &&
pkRecord.getPkStatus() == 1) {
showId = true;
break;
}
}
// 条件不满足则隐藏主播id'
if (!showId) {
pkModel.setDisPlayId(VVTools.replaceChar(pkModel.getAnchorId(), '*'));
}
}
}
}else{
for (PkInfoModel pkModel : pkModels) {
// 设置是否为置顶
pkModel.setIsPin(pkModel.getPinExpireTime() > currentTimeStamp);
pkModel.setDisPlayId(VVTools.replaceChar(pkModel.getAnchorId(), '*'));
}
}
return ResponseData.success(pkModels);
} }
// 查询用户发布的大于当前时间的pk数据 // 查询用户发布的大于当前时间的pk数据

View File

@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
import vvpkassistant.pk.model.PkInfoModel; import vvpkassistant.pk.model.PkInfoModel;
import vvpkassistant.pk.model.PkRecord; import vvpkassistant.pk.model.PkRecord;
import java.util.List;
import java.util.Map;
/* /*
* @author: ziin * @author: ziin
* @date: 2025/8/4 13:53 * @date: 2025/8/4 13:53
@@ -14,4 +17,6 @@ public interface PKService extends IService<PkInfoModel> {
Boolean updatePkStatus(PkRecord recordModel); Boolean updatePkStatus(PkRecord recordModel);
PkRecord createPKRecord(PkRecord record); PkRecord createPKRecord(PkRecord record);
List<PkInfoModel> getPKList(Map<String, Object> map);
} }

View File

@@ -145,4 +145,59 @@ public class PKServiceImpl extends ServiceImpl<PkInfoDao, PkInfoModel> implement
}else }else
throw new BusinessException(ErrorCode.SYSTEM_ERROR); throw new BusinessException(ErrorCode.SYSTEM_ERROR);
} }
@Override
public List<PkInfoModel> getPKList(Map<String, Object> map) {
Integer page = (Integer) map.get("page");
Integer size = (Integer) map.get("size");
Map<String,Object> condition = (Map<String, Object>) map.get("condition");
Map<String, Long> todayTimeStampMap = VVTools.startAndEndTimeStampForToday();
Long start = VVTools.currentTimeStamp();
Long end = todayTimeStampMap.get("end");
List<PkInfoModel> pkModels = pkInfoDao.selectPkInfoByCondition(page * size, size, condition, start, end);
long currentTimeStamp = VVTools.currentTimeStamp();
//如果传了用户id
if (map.containsKey("userId")) {
Long begin = VVTools.currentTimeStamp();
Integer userId = Integer.valueOf(map.get("userId").toString());
// 查询出当前用户大于等于今天的已接受邀请的pk数据
List<PkRecord> pkRecords = pkRecordDao.fetchDataFromTodayWithUserId(userId, begin);
// 遍历查询出的数据。如果文章的id相同。就显示完整的主播名称
for (PkInfoModel pkModel : pkModels) {
pkModel.setDisPlayId(pkModel.getAnchorId());
// 设置是否为置顶
pkModel.setIsPin(pkModel.getPinExpireTime() > currentTimeStamp);
// 如果文章的发布者不是当前登录主播。
if (pkModel.getSenderId().intValue() != userId) {
boolean showId = false;
// 查找是否和当前登录的账号有pk关系。
for (PkRecord pkRecord : pkRecords) {
// 如果当前用户是邀请pk的并且对方已接受pk也可以看到主播id
if (pkRecord.getUserIdB().intValue() == userId &&
pkRecord.getPkIdA().intValue() == pkModel.getId().intValue() &&
pkRecord.getPkStatus() == 1) {
showId = true;
break;
}
}
// 条件不满足则隐藏主播id'
if (!showId) {
pkModel.setDisPlayId(VVTools.replaceChar(pkModel.getAnchorId(), '*'));
}
}
}
}else{
for (PkInfoModel pkModel : pkModels) {
// 设置是否为置顶
pkModel.setIsPin(pkModel.getPinExpireTime() > currentTimeStamp);
pkModel.setDisPlayId(VVTools.replaceChar(pkModel.getAnchorId(), '*'));
}
}
return pkModels;
}
} }