Merge branch 'feature/bug-528' into test

This commit is contained in:
曹鹏飞 2025-08-07 15:17:41 +08:00
commit e65d8f9fc1
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) {
boolean flag=false;
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())) {
AppUser appUser = appUserService.getById(AppUserUtil.getUserId());
Ticket ticket = ticketService.getById(request.getTicketId());
@ -592,7 +594,7 @@ public class TicketController extends ControllerBase {
)
);
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 {
AppUser appUser = appUserService.getById(AppUserUtil.getUserId());
Ticket ticket = ticketService.getById(request.getTicketId());
@ -613,7 +615,7 @@ public class TicketController extends ControllerBase {
)
);
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){

View File

@ -20,4 +20,6 @@ public interface ITicketCallService extends IService<TicketCall> {
void add(Integer ticketId, Integer callerUserId,String callerUserFrom, Integer calledUserId, String calledUserFrom);
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
@Override
public void join(Integer ticketId, Integer userId, String from) {
TicketCall ticketCall = ticketCallService.lambdaQuery()
.eq(TicketCall::getTicketId, ticketId)
.ne(TicketCall::getState, 2)
.last("limit 1")
.one();
TicketCall ticketCall = ticketCallService.getLast(ticketId);
VUtils.trueThrowBusinessError(Objects.isNull(ticketCall)).throwMessage("加入失败,通话已结束");
TicketCallJoin ticketCallJoin = lambdaQuery()
.eq(TicketCallJoin::getCallId, ticketCall.getId())
@ -73,6 +69,7 @@ public class TicketCallJoinServiceImpl extends ServiceImpl<TicketCallJoinMapper,
.ne(TicketCallJoin::getState, 2)
.eq(TicketCallJoin::getUserId, userId)
.eq(TicketCallJoin::getFrom, from)
.orderByDesc(TicketCallJoin::getId)
.last("limit 1")
.one();
boolean flag = false;

View File

@ -60,11 +60,7 @@ public class TicketCallServiceImpl extends ServiceImpl<TicketCallMapper, TicketC
@Override
public boolean hangUp(Integer ticketId, Integer userId, String from, boolean reject) {
TicketCall ticketCall = lambdaQuery()
.eq(TicketCall::getTicketId, ticketId)
.ne(TicketCall::getState, 2)
.last("limit 1")
.one();
TicketCall ticketCall = getLast(ticketId);
boolean flag = false;
if (Objects.nonNull(ticketCall)){
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;
}
@Override
public TicketCall getLast(Integer ticketId) {
return lambdaQuery()
.eq(TicketCall::getTicketId, ticketId)
.ne(TicketCall::getState, 2)
.orderByDesc(TicketCall::getId)
.last("limit 1")
.one();
}
}