1.修改创建 创建PK记录
This commit is contained in:
@@ -47,84 +47,19 @@ public class PkController {
|
|||||||
// 创建pk数据
|
// 创建pk数据
|
||||||
@PostMapping("addPkData")
|
@PostMapping("addPkData")
|
||||||
public ResponseData<PkInfoModel> addPkData(@RequestBody PkInfoModel pkModel) {
|
public ResponseData<PkInfoModel> addPkData(@RequestBody PkInfoModel pkModel) {
|
||||||
|
return ResponseData.success(pkService.addPkAddData(pkModel));
|
||||||
return ResponseData.success(pkService.addPkaddData(pkModel));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新pk信息
|
// 更新pk信息
|
||||||
@PostMapping("updatePkStatus")
|
@PostMapping("updatePkStatus")
|
||||||
public ResponseData<Object> updatePkStatus(@RequestBody PkRecord recordModel) {
|
public ResponseData<Object> updatePkStatus(@RequestBody PkRecord recordModel) {
|
||||||
|
return ResponseData.success(pkService.updatePkStatus(recordModel));
|
||||||
//如果是同意了pk邀请、则更新已发布的主播pk可邀请状态
|
|
||||||
if (recordModel.getPkStatus() == 1) {
|
|
||||||
|
|
||||||
// 查询出记录信息
|
|
||||||
PkRecord pkRecordById = recordDao.singleRecord(recordModel.getId());
|
|
||||||
|
|
||||||
// 更新可邀请状态
|
|
||||||
PkInfoModel pkInfoModelA = pkDao.selectById(pkRecordById.getPkIdA());
|
|
||||||
pkInfoModelA.setInviteStatus(1);
|
|
||||||
|
|
||||||
PkInfoModel pkInfoModelB = pkDao.selectById(pkRecordById.getPkIdB());
|
|
||||||
pkInfoModelB.setInviteStatus(1);
|
|
||||||
|
|
||||||
pkDao.updateById(pkInfoModelA);
|
|
||||||
pkDao.updateById(pkInfoModelB);
|
|
||||||
|
|
||||||
// 如果有置顶的状态。需要取消置顶
|
|
||||||
if (pkInfoModelA.getPinExpireTime() > VVTools.currentTimeStamp()) {
|
|
||||||
long hour = VVTools.calculateHoursFloor(pkInfoModelA.getPinExpireTime(),VVTools.currentTimeStamp());
|
|
||||||
int coin = Integer.parseInt(FunctionConfigHolder.getValue("置顶扣除积分"));
|
|
||||||
int totalCoin = (int) (coin * hour);
|
|
||||||
|
|
||||||
// 插入记录
|
|
||||||
CoinRecords coinRecords = new CoinRecords("成功预约pk,自动取消置顶", pkInfoModelA.getSenderId(),totalCoin, (int) VVTools.currentTimeStamp(),1);
|
|
||||||
coinRecordsDao.insert(coinRecords);
|
|
||||||
|
|
||||||
// 更新积分
|
|
||||||
UserModel userModel = userDao.selectById(pkRecordById.getUserIdA());
|
|
||||||
Integer points = userModel.getPoints();
|
|
||||||
userModel.setPoints(points + totalCoin);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pkInfoModelB.getPinExpireTime() > VVTools.currentTimeStamp()) {
|
|
||||||
long hour = VVTools.calculateHoursFloor(pkInfoModelB.getPinExpireTime(),VVTools.currentTimeStamp());
|
|
||||||
int coin = Integer.parseInt(FunctionConfigHolder.getValue("置顶扣除积分"));
|
|
||||||
int totalCoin = (int) (coin * hour);
|
|
||||||
|
|
||||||
// 插入记录
|
|
||||||
CoinRecords coinRecords = new CoinRecords("成功预约pk,自动取消置顶", pkInfoModelB.getSenderId(),totalCoin, (int) VVTools.currentTimeStamp(),1);
|
|
||||||
coinRecordsDao.insert(coinRecords);
|
|
||||||
|
|
||||||
// 更新积分
|
|
||||||
UserModel userModel = userDao.selectById(pkRecordById.getUserIdB());
|
|
||||||
Integer points = userModel.getPoints();
|
|
||||||
userModel.setPoints(points + totalCoin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新pk邀请记录
|
|
||||||
int update = recordDao.updateById(recordModel);
|
|
||||||
return update == 1 ? ResponseData.success("") : ResponseData.error(ResponseInfo.ERROR.getCode(),null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建PK记录
|
// 创建PK记录
|
||||||
@PostMapping("createPkRecord")
|
@PostMapping("createPkRecord")
|
||||||
public ResponseData<Object> createPkRecord(@RequestBody PkRecord record) {
|
public ResponseData<Object> createPkRecord(@RequestBody PkRecord record) {
|
||||||
|
return ResponseData.success(pkService.createPKRecord(record));
|
||||||
// 如果这两个邀约直播之间存在未处理的邀请记录。那就不允许继续发送pk邀请
|
|
||||||
String anchorIdA = record.getAnchorIdA();
|
|
||||||
String anchorIdB = record.getAnchorIdB();
|
|
||||||
Integer dataCount = recordDao.getPendingInvitations(anchorIdA, anchorIdB);
|
|
||||||
|
|
||||||
if (dataCount > 0) {
|
|
||||||
return ResponseData.error(ResponseInfo.ERROR.getCode(),"已存在一条未处理的pk申请,不能重复发送,");
|
|
||||||
}
|
|
||||||
|
|
||||||
record.setPkStatus(0);
|
|
||||||
int insert = recordDao.insert(record);
|
|
||||||
return insert == 1 ? ResponseData.success(record) : ResponseData.error(ResponseInfo.ERROR.getCode(),null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// pk列表
|
// pk列表
|
||||||
|
|||||||
@@ -2,11 +2,16 @@ package vvpkassistant.pk.service;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import vvpkassistant.pk.model.PkInfoModel;
|
import vvpkassistant.pk.model.PkInfoModel;
|
||||||
|
import vvpkassistant.pk.model.PkRecord;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @author: ziin
|
* @author: ziin
|
||||||
* @date: 2025/8/4 13:53
|
* @date: 2025/8/4 13:53
|
||||||
*/
|
*/
|
||||||
public interface PKService extends IService<PkInfoModel> {
|
public interface PKService extends IService<PkInfoModel> {
|
||||||
PkInfoModel addPkaddData(PkInfoModel pkModel);
|
PkInfoModel addPkAddData(PkInfoModel pkModel);
|
||||||
|
|
||||||
|
Boolean updatePkStatus(PkRecord recordModel);
|
||||||
|
|
||||||
|
PkRecord createPKRecord(PkRecord record);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,13 +2,20 @@ package vvpkassistant.pk.service;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import vvpkassistant.CoinRecords.CoinRecords;
|
||||||
|
import vvpkassistant.CoinRecords.CoinRecordsDao;
|
||||||
import vvpkassistant.Data.ResponseData;
|
import vvpkassistant.Data.ResponseData;
|
||||||
import vvpkassistant.Data.ResponseInfo;
|
import vvpkassistant.Data.ResponseInfo;
|
||||||
import vvpkassistant.Tools.VVTools;
|
import vvpkassistant.Tools.VVTools;
|
||||||
|
import vvpkassistant.User.mapper.UserDao;
|
||||||
|
import vvpkassistant.User.model.UserModel;
|
||||||
import vvpkassistant.common.ErrorCode;
|
import vvpkassistant.common.ErrorCode;
|
||||||
|
import vvpkassistant.config.FunctionConfigHolder;
|
||||||
import vvpkassistant.exception.BusinessException;
|
import vvpkassistant.exception.BusinessException;
|
||||||
import vvpkassistant.pk.mapper.PkInfoDao;
|
import vvpkassistant.pk.mapper.PkInfoDao;
|
||||||
|
import vvpkassistant.pk.mapper.PkRecordDao;
|
||||||
import vvpkassistant.pk.model.PkInfoModel;
|
import vvpkassistant.pk.model.PkInfoModel;
|
||||||
|
import vvpkassistant.pk.model.PkRecord;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -24,8 +31,17 @@ public class PKServiceImpl extends ServiceImpl<PkInfoDao, PkInfoModel> implement
|
|||||||
@Resource
|
@Resource
|
||||||
private PkInfoDao pkInfoDao;
|
private PkInfoDao pkInfoDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private PkRecordDao pkRecordDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CoinRecordsDao coinRecordsDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private UserDao userDao;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PkInfoModel addPkaddData(PkInfoModel pkModel) {
|
public PkInfoModel addPkAddData(PkInfoModel pkModel) {
|
||||||
// 初始可邀请状态为0
|
// 初始可邀请状态为0
|
||||||
pkModel.setInviteStatus(0);
|
pkModel.setInviteStatus(0);
|
||||||
pkModel.setPinExpireTime(0);
|
pkModel.setPinExpireTime(0);
|
||||||
@@ -46,11 +62,86 @@ public class PKServiceImpl extends ServiceImpl<PkInfoDao, PkInfoModel> implement
|
|||||||
|
|
||||||
// 判断该主播在当日是否已发布过pk信息
|
// 判断该主播在当日是否已发布过pk信息
|
||||||
if (!pkInfoModels.isEmpty()) {
|
if (!pkInfoModels.isEmpty()) {
|
||||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR,"该主播当日已有pk信息");
|
throw new BusinessException(ErrorCode.SYSTEM_ERROR, "该主播当日已有pk信息");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pkInfoDao.insert(pkModel) == 1) {
|
if (pkInfoDao.insert(pkModel) == 1) {
|
||||||
return pkModel;
|
return pkModel;
|
||||||
|
} else
|
||||||
|
throw new BusinessException(ErrorCode.SYSTEM_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean updatePkStatus(PkRecord recordModel) {
|
||||||
|
if (recordModel.getPkStatus() == 1) {
|
||||||
|
|
||||||
|
// 查询出记录信息
|
||||||
|
PkRecord pkRecordById = pkRecordDao.singleRecord(recordModel.getId());
|
||||||
|
|
||||||
|
// 更新可邀请状态
|
||||||
|
PkInfoModel pkInfoModelA = pkInfoDao.selectById(pkRecordById.getPkIdA());
|
||||||
|
pkInfoModelA.setInviteStatus(1);
|
||||||
|
|
||||||
|
PkInfoModel pkInfoModelB = pkInfoDao.selectById(pkRecordById.getPkIdB());
|
||||||
|
pkInfoModelB.setInviteStatus(1);
|
||||||
|
|
||||||
|
pkInfoDao.updateById(pkInfoModelA);
|
||||||
|
pkInfoDao.updateById(pkInfoModelB);
|
||||||
|
|
||||||
|
// 如果有置顶的状态。需要取消置顶
|
||||||
|
if (pkInfoModelA.getPinExpireTime() > VVTools.currentTimeStamp()) {
|
||||||
|
long hour = VVTools.calculateHoursFloor(pkInfoModelA.getPinExpireTime(), VVTools.currentTimeStamp());
|
||||||
|
int coin = Integer.parseInt(FunctionConfigHolder.getValue("置顶扣除积分"));
|
||||||
|
int totalCoin = (int) (coin * hour);
|
||||||
|
|
||||||
|
// 插入记录
|
||||||
|
CoinRecords coinRecords = new CoinRecords("成功预约pk,自动取消置顶", pkInfoModelA.getSenderId(), totalCoin, (int) VVTools.currentTimeStamp(), 1);
|
||||||
|
coinRecordsDao.insert(coinRecords);
|
||||||
|
|
||||||
|
// 更新积分
|
||||||
|
UserModel userModel = userDao.selectById(pkRecordById.getUserIdA());
|
||||||
|
Integer points = userModel.getPoints();
|
||||||
|
userModel.setPoints(points + totalCoin);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pkInfoModelB.getPinExpireTime() > VVTools.currentTimeStamp()) {
|
||||||
|
long hour = VVTools.calculateHoursFloor(pkInfoModelB.getPinExpireTime(), VVTools.currentTimeStamp());
|
||||||
|
int coin = Integer.parseInt(FunctionConfigHolder.getValue("置顶扣除积分"));
|
||||||
|
int totalCoin = (int) (coin * hour);
|
||||||
|
|
||||||
|
// 插入记录
|
||||||
|
CoinRecords coinRecords = new CoinRecords("成功预约pk,自动取消置顶", pkInfoModelB.getSenderId(), totalCoin, (int) VVTools.currentTimeStamp(), 1);
|
||||||
|
coinRecordsDao.insert(coinRecords);
|
||||||
|
|
||||||
|
// 更新积分
|
||||||
|
UserModel userModel = userDao.selectById(pkRecordById.getUserIdB());
|
||||||
|
Integer points = userModel.getPoints();
|
||||||
|
userModel.setPoints(points + totalCoin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新pk邀请记录
|
||||||
|
if (pkRecordDao.updateById(recordModel) == 1) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
throw new BusinessException(ErrorCode.SYSTEM_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PkRecord createPKRecord(PkRecord record) {
|
||||||
|
// 如果这两个邀约直播之间存在未处理的邀请记录。那就不允许继续发送pk邀请
|
||||||
|
String anchorIdA = record.getAnchorIdA();
|
||||||
|
String anchorIdB = record.getAnchorIdB();
|
||||||
|
Integer dataCount = pkRecordDao.getPendingInvitations(anchorIdA, anchorIdB);
|
||||||
|
|
||||||
|
if (dataCount > 0) {
|
||||||
|
throw new BusinessException(ErrorCode.SYSTEM_ERROR, "已存在一条未处理的pk申请,不能重复发送");
|
||||||
|
}
|
||||||
|
|
||||||
|
record.setPkStatus(0);
|
||||||
|
if (pkRecordDao.insert(record) == 1 ){
|
||||||
|
return record;
|
||||||
}else
|
}else
|
||||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR);
|
throw new BusinessException(ErrorCode.SYSTEM_ERROR);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user