feat: bug-528 app端添加管理功能

调整视频通话逻辑
This commit is contained in:
曹鹏飞 2025-08-07 15:17:32 +08:00
parent e32b3964f1
commit 1c64a30430
4 changed files with 19 additions and 12 deletions

View File

@ -571,6 +571,8 @@ public class TicketController extends ControllerBase {
public ApiResult<Void> hangUp(@Valid @RequestBody TicketCallHangUpRequest request) { public ApiResult<Void> hangUp(@Valid @RequestBody TicketCallHangUpRequest request) {
boolean flag=false; boolean flag=false;
if (request.getReject()) { if (request.getReject()) {
TicketCall ticketCall = ticketCallService.getLast(request.getTicketId());
if (Objects.isNull(ticketCall)) return ApiResult.success();
if (StrUtil.equals(request.getFrom(), Constant.FROM_APP) && Objects.equals(AppUserUtil.getUserId(), request.getFromUserId())) { if (StrUtil.equals(request.getFrom(), Constant.FROM_APP) && Objects.equals(AppUserUtil.getUserId(), request.getFromUserId())) {
AppUser appUser = appUserService.getById(AppUserUtil.getUserId()); AppUser appUser = appUserService.getById(AppUserUtil.getUserId());
Ticket ticket = ticketService.getById(request.getTicketId()); Ticket ticket = ticketService.getById(request.getTicketId());
@ -592,7 +594,7 @@ public class TicketController extends ControllerBase {
) )
); );
ssePushService.sendTicketCallCancelToAdmin(request.getTicketId(), handlerId, appUser); ssePushService.sendTicketCallCancelToAdmin(request.getTicketId(), handlerId, appUser);
flag=ticketCallService.hangUp(request.getTicketId(), AppUserUtil.getUserId(), Constant.FROM_APP, true); flag = ticketCallService.hangUp(ticketCall.getId(), AppUserUtil.getUserId(), Constant.FROM_APP, true);
}else { }else {
AppUser appUser = appUserService.getById(AppUserUtil.getUserId()); AppUser appUser = appUserService.getById(AppUserUtil.getUserId());
Ticket ticket = ticketService.getById(request.getTicketId()); Ticket ticket = ticketService.getById(request.getTicketId());
@ -613,7 +615,7 @@ public class TicketController extends ControllerBase {
) )
); );
ssePushService.sendTicketCallHangUpToAdmin(request.getTicketId(), request.getFromUserId(), appUser); ssePushService.sendTicketCallHangUpToAdmin(request.getTicketId(), request.getFromUserId(), appUser);
flag=ticketCallJoinService.hangUp(request.getTicketId(), AppUserUtil.getUserId(), Constant.FROM_APP, true); flag = ticketCallJoinService.hangUp(ticketCall.getId(), AppUserUtil.getUserId(), Constant.FROM_APP, true);
} }
} }
if (flag){ if (flag){

View File

@ -20,4 +20,6 @@ public interface ITicketCallService extends IService<TicketCall> {
void add(Integer ticketId, Integer callerUserId,String callerUserFrom, Integer calledUserId, String calledUserFrom); void add(Integer ticketId, Integer callerUserId,String callerUserFrom, Integer calledUserId, String calledUserFrom);
boolean hangUp(@NotNull Integer ticketId, Integer userId, String from, boolean reject); boolean hangUp(@NotNull Integer ticketId, Integer userId, String from, boolean reject);
TicketCall getLast(@NotNull Integer ticketId);
} }

View File

@ -38,11 +38,7 @@ public class TicketCallJoinServiceImpl extends ServiceImpl<TicketCallJoinMapper,
@Transactional @Transactional
@Override @Override
public void join(Integer ticketId, Integer userId, String from) { public void join(Integer ticketId, Integer userId, String from) {
TicketCall ticketCall = ticketCallService.lambdaQuery() TicketCall ticketCall = ticketCallService.getLast(ticketId);
.eq(TicketCall::getTicketId, ticketId)
.ne(TicketCall::getState, 2)
.last("limit 1")
.one();
VUtils.trueThrowBusinessError(Objects.isNull(ticketCall)).throwMessage("加入失败,通话已结束"); VUtils.trueThrowBusinessError(Objects.isNull(ticketCall)).throwMessage("加入失败,通话已结束");
TicketCallJoin ticketCallJoin = lambdaQuery() TicketCallJoin ticketCallJoin = lambdaQuery()
.eq(TicketCallJoin::getCallId, ticketCall.getId()) .eq(TicketCallJoin::getCallId, ticketCall.getId())
@ -73,6 +69,7 @@ public class TicketCallJoinServiceImpl extends ServiceImpl<TicketCallJoinMapper,
.ne(TicketCallJoin::getState, 2) .ne(TicketCallJoin::getState, 2)
.eq(TicketCallJoin::getUserId, userId) .eq(TicketCallJoin::getUserId, userId)
.eq(TicketCallJoin::getFrom, from) .eq(TicketCallJoin::getFrom, from)
.orderByDesc(TicketCallJoin::getId)
.last("limit 1") .last("limit 1")
.one(); .one();
boolean flag = false; boolean flag = false;

View File

@ -60,11 +60,7 @@ public class TicketCallServiceImpl extends ServiceImpl<TicketCallMapper, TicketC
@Override @Override
public boolean hangUp(Integer ticketId, Integer userId, String from, boolean reject) { public boolean hangUp(Integer ticketId, Integer userId, String from, boolean reject) {
TicketCall ticketCall = lambdaQuery() TicketCall ticketCall = getLast(ticketId);
.eq(TicketCall::getTicketId, ticketId)
.ne(TicketCall::getState, 2)
.last("limit 1")
.one();
boolean flag = false; boolean flag = false;
if (Objects.nonNull(ticketCall)){ if (Objects.nonNull(ticketCall)){
if ((Objects.equals(ticketCall.getCallerUserId(), userId) && StrUtil.equals(ticketCall.getFrom(), Constant.FROM_APP)) if ((Objects.equals(ticketCall.getCallerUserId(), userId) && StrUtil.equals(ticketCall.getFrom(), Constant.FROM_APP))
@ -80,4 +76,14 @@ public class TicketCallServiceImpl extends ServiceImpl<TicketCallMapper, TicketC
} }
return flag; return flag;
} }
@Override
public TicketCall getLast(Integer ticketId) {
return lambdaQuery()
.eq(TicketCall::getTicketId, ticketId)
.ne(TicketCall::getState, 2)
.orderByDesc(TicketCall::getId)
.last("limit 1")
.one();
}
} }