123333
This commit is contained in:
@@ -1,19 +1,23 @@
|
||||
package com.ruoyi.cai.chat;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.cai.domain.Account;
|
||||
import com.ruoyi.cai.domain.Anchor;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserCall;
|
||||
import com.ruoyi.cai.dto.app.dto.GuardNum;
|
||||
import com.ruoyi.cai.dto.app.query.CallReq;
|
||||
import com.ruoyi.cai.dto.app.query.room.VideoScoreReq;
|
||||
import com.ruoyi.cai.dto.app.vo.chat.CallResp;
|
||||
import com.ruoyi.cai.dto.app.vo.chat.GetRoomResp;
|
||||
import com.ruoyi.cai.dto.app.vo.chat.VideoChargingResp;
|
||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||
import com.ruoyi.cai.manager.IdManager;
|
||||
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||
import com.ruoyi.cai.service.*;
|
||||
import com.ruoyi.cai.ws.bean.Room;
|
||||
import com.ruoyi.cai.ws.constant.RedisConstant;
|
||||
import com.ruoyi.cai.ws.constant.RoomStatusEnums;
|
||||
import com.ruoyi.cai.ws.dto.WsToken;
|
||||
import com.ruoyi.cai.ws.manager.WebSocketManager;
|
||||
import com.ruoyi.common.utils.MapGetUtil;
|
||||
@@ -174,4 +178,57 @@ public class ChatManager {
|
||||
return getRoomResp;
|
||||
}
|
||||
|
||||
public void videoScore(VideoScoreReq req) {
|
||||
Long userId = LoginHelper.getUserId();
|
||||
UserCall userCall = userCallService.getById(req.getRoomId());
|
||||
if(userCall == null){
|
||||
throw new ServiceException("房间号不存在");
|
||||
}
|
||||
if(userCall.getStatus() > RoomStatusEnums.STATUS_SCORE.getCode()){
|
||||
throw new ServiceException("当前通话已经完成,不可评论!");
|
||||
}
|
||||
if(userCall.getStatus() < RoomStatusEnums.STATUS_HANGUP.getCode()){
|
||||
throw new ServiceException("当前未通话完成,不可以评论!");
|
||||
}
|
||||
if(userCall.getFromUid().equals(userId)){
|
||||
userCallService.update(Wrappers.lambdaUpdate(UserCall.class)
|
||||
.set(UserCall::getCallScore, req.getScore())
|
||||
.set(UserCall::getStatus, RoomStatusEnums.STATUS_SCORE.getCode())
|
||||
.eq(UserCall::getId, userCall.getId()));
|
||||
}else if(userCall.getToUid().equals(userId)){
|
||||
userCallService.update(Wrappers.lambdaUpdate(UserCall.class)
|
||||
.set(UserCall::getUserScore, req.getScore())
|
||||
.set(UserCall::getStatus, RoomStatusEnums.STATUS_SCORE.getCode())
|
||||
.eq(UserCall::getId, userCall.getId()));
|
||||
}
|
||||
}
|
||||
|
||||
public VideoChargingResp videoCharging(String roomId) {
|
||||
Long userId = LoginHelper.getUserId();
|
||||
UserCall userCall = userCallService.getById(roomId);
|
||||
if(userCall == null){
|
||||
throw new ServiceException("房间号不存在");
|
||||
}
|
||||
if(!userCall.getFromUid().equals(userId) && !userCall.getToUid().equals(userId)){
|
||||
throw new ServiceException("无权限操作");
|
||||
}
|
||||
User fromUser = userService.getById(userCall.getFromUid());
|
||||
User toUser = userService.getById(userCall.getToUid());
|
||||
VideoChargingResp resp = new VideoChargingResp();
|
||||
resp.setRoomId(userCall.getId());
|
||||
resp.setFromUid(fromUser.getId());
|
||||
resp.setFromNickname(fromUser.getNickname());
|
||||
resp.setFromAvatar(fromUser.getAvatar());
|
||||
resp.setPrice(userCall.getCallPrice());
|
||||
resp.setToUid(toUser.getId());
|
||||
resp.setToNickname(toUser.getNickname());
|
||||
resp.setToAvatar(toUser.getAvatar());
|
||||
resp.setCallTime(userCall.getCallTime());
|
||||
if(userCall.getFromUid().equals(userId)){
|
||||
resp.setPayMoney(userCall.getCallAmount());
|
||||
}else if(userCall.getToUid().equals(userId)){
|
||||
resp.setIncomeMoney(userCall.getCallIncome());
|
||||
}
|
||||
return resp;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.ruoyi.cai.dto.app.dto;
|
||||
package com.ruoyi.cai.dto.app.query.im;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.ruoyi.cai.dto.app.query.im;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SaveSendImImgReq {
|
||||
@Schema(description = "消息记录Id")
|
||||
private Long recordId;
|
||||
@Schema(description = "不知道是撒")
|
||||
private String serverId;
|
||||
@Schema(description = "不知道是撒")
|
||||
private String messageId;
|
||||
@Schema(description = "时间")
|
||||
private String time;
|
||||
@Schema(description = "图片地址")
|
||||
private String imageUrl;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.ruoyi.cai.dto.app.query.room;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class VideoScoreReq {
|
||||
@Schema(description = "房间号")
|
||||
private Long roomId;
|
||||
@Schema(description = "评分 1-5分")
|
||||
private BigDecimal score;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.ruoyi.cai.dto.app.vo.chat;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ChatTipResp {
|
||||
private String tip;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.ruoyi.cai.dto.app.vo.chat;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class VideoChargingResp {
|
||||
@Schema(description = "房间号")
|
||||
private Long roomId;
|
||||
@Schema(description = "拨打方用户ID")
|
||||
private Long fromUid;
|
||||
@Schema(description = "拨打方用户昵称")
|
||||
private String fromNickname;
|
||||
@Schema(description = "拨打方用户头像")
|
||||
private String fromAvatar;
|
||||
@Schema(description = "通话单价")
|
||||
private Long price;
|
||||
@Schema(description = "接收方用户ID")
|
||||
private Long toUid;
|
||||
@Schema(description = "接收方用户昵称")
|
||||
private String toNickname;
|
||||
@Schema(description = "接收方用户头像")
|
||||
private String toAvatar;
|
||||
@Schema(description = "通话时长")
|
||||
private Long callTime;
|
||||
@Schema(description = "通话总价格")
|
||||
private Long payMoney = 0L;
|
||||
@Schema(description = "通话主播收益")
|
||||
private Long incomeMoney = 0L;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.ruoyi.cai.dto.app.vo.user;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UserMinInfoVo {
|
||||
@Schema(description = "用户ID")
|
||||
private Long userId;
|
||||
/**
|
||||
* 是否是播主 0 否 1 是
|
||||
*/
|
||||
@Schema(description = "是否是播主 0 否 1 是")
|
||||
private Integer isAnchor;
|
||||
@Schema(description = "蜜瓜号")
|
||||
private String usercode;
|
||||
@Schema(description = "昵称")
|
||||
private String nickname;
|
||||
@Schema(description = "头像")
|
||||
private String avatar;
|
||||
@Schema(description = "城市")
|
||||
private String city;
|
||||
@Schema(description = "城市ID")
|
||||
private Integer cityId;
|
||||
|
||||
@Schema(description = "年龄")
|
||||
private Long age;
|
||||
|
||||
@Schema(description = "用户账户")
|
||||
private UserAccountVo userAccount;
|
||||
}
|
||||
@@ -3,7 +3,7 @@ package com.ruoyi.cai.manager;
|
||||
import com.ruoyi.cai.domain.Account;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserChatRecord;
|
||||
import com.ruoyi.cai.dto.app.dto.ImMessageDTO;
|
||||
import com.ruoyi.cai.dto.app.query.im.ImMessageDTO;
|
||||
import com.ruoyi.cai.dto.app.vo.ImResp;
|
||||
import com.ruoyi.cai.enums.GenderEnum;
|
||||
import com.ruoyi.cai.enums.ChatTypeEnum;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.ruoyi.cai.service;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserChatRecord;
|
||||
import com.ruoyi.cai.dto.app.dto.ImMessageDTO;
|
||||
import com.ruoyi.cai.dto.app.query.im.ImMessageDTO;
|
||||
|
||||
/**
|
||||
* 聊天记录Service接口
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.ruoyi.cai.dto.app.query.index.GreetQuery;
|
||||
import com.ruoyi.cai.dto.app.query.index.UserQuery;
|
||||
import com.ruoyi.cai.dto.app.vo.user.UserInfoVo;
|
||||
import com.ruoyi.cai.dto.app.vo.user.UserListVo;
|
||||
import com.ruoyi.cai.dto.app.vo.user.UserMinInfoVo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
/**
|
||||
@@ -48,4 +49,6 @@ public interface UserService extends IService<User> {
|
||||
void unBindInviteUser(Long userId);
|
||||
|
||||
void bindInviteUser(Long userId, String inviteUsercode);
|
||||
|
||||
UserMinInfoVo minInfo(Long userId);
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserChatRecord;
|
||||
import com.ruoyi.cai.dto.app.dto.ImMessageDTO;
|
||||
import com.ruoyi.cai.dto.app.query.im.ImMessageDTO;
|
||||
import com.ruoyi.cai.mapper.UserChatRecordMapper;
|
||||
import com.ruoyi.cai.service.UserChatRecordService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@@ -11,9 +11,7 @@ import com.ruoyi.cai.dto.admin.vo.UserAdminVo;
|
||||
import com.ruoyi.cai.dto.app.query.index.GreetQuery;
|
||||
import com.ruoyi.cai.dto.app.query.index.UserMapperQuery;
|
||||
import com.ruoyi.cai.dto.app.query.index.UserQuery;
|
||||
import com.ruoyi.cai.dto.app.vo.user.OnlineStatusVo;
|
||||
import com.ruoyi.cai.dto.app.vo.user.UserInfoVo;
|
||||
import com.ruoyi.cai.dto.app.vo.user.UserListVo;
|
||||
import com.ruoyi.cai.dto.app.vo.user.*;
|
||||
import com.ruoyi.cai.enums.GenderEnum;
|
||||
import com.ruoyi.cai.mapper.UserMapper;
|
||||
import com.ruoyi.cai.notice.YunxinHttpService;
|
||||
@@ -377,4 +375,28 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
||||
caiLoginManager.dealInviteId(user,false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserMinInfoVo minInfo(Long userId) {
|
||||
User user = this.getById(userId);
|
||||
if(user == null){
|
||||
return null;
|
||||
}
|
||||
UserMinInfoVo vo = new UserMinInfoVo();
|
||||
vo.setUserId(userId);
|
||||
vo.setIsAnchor(user.getIsAnchor());
|
||||
vo.setUsercode(user.getUsercode());
|
||||
vo.setNickname(user.getNickname());
|
||||
vo.setAvatar(user.getAvatar());
|
||||
vo.setAge(user.getAge());
|
||||
vo.setCity(user.getCity());
|
||||
vo.setCityId(user.getCityId());
|
||||
Account account = accountService.getByUserId(userId);
|
||||
UserAccountVo accountVo = new UserAccountVo();
|
||||
accountVo.setUserId(account.getUserId());
|
||||
accountVo.setCoin(account.getCoin());
|
||||
accountVo.setIncomeCoin(account.getIncomeCoin());
|
||||
vo.setUserAccount(accountVo);
|
||||
return vo;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -40,7 +40,8 @@ public enum RoomStatusEnums {
|
||||
/**
|
||||
* 通话结束
|
||||
*/
|
||||
STATUS_HANGUP(8,"通话结束")
|
||||
STATUS_HANGUP(8,"通话结束"),
|
||||
STATUS_SCORE(9,"评分完成"),
|
||||
;
|
||||
|
||||
private final Integer code;
|
||||
|
||||
Reference in New Issue
Block a user