提交
This commit is contained in:
@@ -62,6 +62,8 @@ public class ApiRollController extends BaseController {
|
||||
@NotNull(message = "roll房id不能为空。")
|
||||
private Integer rollId;
|
||||
private String rollPassword;
|
||||
// 新增:CDK码(有CDK的房间必填)
|
||||
private String cdkCode;
|
||||
}
|
||||
|
||||
@ApiOperation("加入ROLL房")
|
||||
@@ -173,4 +175,5 @@ public class ApiRollController extends BaseController {
|
||||
return "1";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.ruoyi.admin.config.RedisConstants;
|
||||
import com.ruoyi.admin.mapper.*;
|
||||
import com.ruoyi.admin.service.TtBoxRecordsService;
|
||||
import com.ruoyi.admin.service.TtOrnamentsLevelService;
|
||||
import com.ruoyi.admin.service.TtRollCdkService;
|
||||
import com.ruoyi.admin.service.TtRollUserService;
|
||||
import com.ruoyi.admin.util.RandomUtils;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
@@ -121,9 +122,12 @@ public class ApiRollServiceImpl extends ServiceImpl<TtRollMapper, TtRoll> implem
|
||||
@Autowired
|
||||
private TtBoxRecordsMapper ttBoxRecordsMapper;
|
||||
|
||||
@Autowired
|
||||
private TtRollCdkService ttRollCdkService;
|
||||
|
||||
public R<TtRoll> joinRollCheck(TtRoll ttRoll, TtRollUser rollUser, TtUser player, JoinRollParam param) {
|
||||
|
||||
if (StringUtils.isNull(ttRoll)) return R.fail("当前Roll房已结束");
|
||||
/*if (StringUtils.isNull(ttRoll)) return R.fail("当前Roll房已结束");
|
||||
if (StringUtils.isNotNull(rollUser)) return R.fail("您当前已在该房间内,请勿重复加入房间!");
|
||||
|
||||
String password = ttRoll.getRollPassword();
|
||||
@@ -139,6 +143,41 @@ public class ApiRollServiceImpl extends ServiceImpl<TtRollMapper, TtRoll> implem
|
||||
if (minRecharge.compareTo(rechargeTotalAmount) > 0) return R.fail("未满足该房间的充值条件!");
|
||||
}
|
||||
|
||||
return R.ok();*/
|
||||
if (StringUtils.isNull(ttRoll)) return R.fail("当前Roll房已结束");
|
||||
if (StringUtils.isNotNull(rollUser)) return R.fail("您当前已在该房间内,请勿重复加入房间!");
|
||||
|
||||
// ---- CDK 模式校验(有CDK则走CDK,否则走普通密码)----
|
||||
boolean hasCdk = ttRollCdkService.count(
|
||||
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<TtRollCdk>()
|
||||
.eq(TtRollCdk::getRollId, ttRoll.getId())
|
||||
) > 0;
|
||||
|
||||
if (hasCdk) {
|
||||
// CDK 模式:必须提供 cdkCode
|
||||
if (StringUtils.isEmpty(param.getCdkCode())) {
|
||||
return R.fail("该房间需要CDK才能参与,请输入CDK!");
|
||||
}
|
||||
String cdkError = ttRollCdkService.useCdk(ttRoll.getId(), param.getCdkCode(), player.getUserId());
|
||||
if (cdkError != null) {
|
||||
return R.fail(cdkError);
|
||||
}
|
||||
} else {
|
||||
// 普通密码模式(兼容原有逻辑)
|
||||
String password = ttRoll.getRollPassword();
|
||||
if (StringUtils.isNotEmpty(password)) {
|
||||
if (StringUtils.isEmpty(param.getRollPassword())) return R.fail("请输入密码!");
|
||||
if (!password.equals(param.getRollPassword())) return R.fail("密码错误!");
|
||||
}
|
||||
}
|
||||
|
||||
// 检查加入条件:充值下限(原有逻辑保留)
|
||||
BigDecimal minRecharge = ttRoll.getMinRecharge();
|
||||
if (minRecharge != null && minRecharge.compareTo(BigDecimal.ZERO) > 0) {
|
||||
BigDecimal rechargeTotalAmount = getRechargeTotalAmount(player.getUserId(), ttRoll.getRechargeStartTime());
|
||||
if (minRecharge.compareTo(rechargeTotalAmount) > 0) return R.fail("未满足该房间的充值条件!");
|
||||
}
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@@ -524,6 +563,12 @@ public class ApiRollServiceImpl extends ServiceImpl<TtRollMapper, TtRoll> implem
|
||||
RollDetailsDataVO data = apiRollMapper.getRollDetails(rollId);
|
||||
data.setHasPW(!StringUtils.isBlank(ttRoll.getRollPassword()));
|
||||
|
||||
// 判断是否有CDK
|
||||
long cdkCount = ttRollCdkService.count(
|
||||
new LambdaQueryWrapper<TtRollCdk>().eq(TtRollCdk::getRollId, rollId)
|
||||
);
|
||||
data.setHasCdk(cdkCount > 0);
|
||||
|
||||
// 成员
|
||||
// List<TtRollUser> list = new LambdaQueryChainWrapper<>(ttRollUserMapper)
|
||||
// .eq(TtRollUser::getRollId, rollId)
|
||||
|
||||
Reference in New Issue
Block a user