123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- package com.fdkankan.tk.controller;
- import cn.hutool.crypto.digest.MD5;
- import cn.hutool.jwt.JWTUtil;
- import com.fdkankan.redis.util.RedisUtil;
- import com.fdkankan.tk.common.ResultCode;
- import com.fdkankan.tk.common.ResultData;
- import com.fdkankan.tk.common.util.RedisKeyUtil;
- import com.fdkankan.tk.entity.Room;
- import com.fdkankan.tk.exception.BusinessException;
- import com.fdkankan.tk.request.CheckRoomPasswordParam;
- import com.fdkankan.tk.request.RoomAddParam;
- import com.fdkankan.tk.request.RoomListParam;
- import com.fdkankan.tk.response.RoomAddUserParam;
- import com.fdkankan.tk.service.IRoomService;
- import com.fdkankan.tk.service.IRoomShareLogService;
- import com.fdkankan.tk.util.MD5Utils;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.io.IOException;
- /**
- *房间管理
- */
- @RestController
- @Slf4j
- public class RoomController extends BaseController{
- @Autowired
- IRoomService roomService;
- @Autowired
- IRoomShareLogService roomShareLogService;
- @Autowired
- RedisUtil redisUtil;
- /**
- * 根据房间id获取详情
- */
- @GetMapping("/roomInfo")
- public ResultData roomInfo(@RequestParam(required = false) String roomId){
- return ResultData.ok(roomService.getRoomInfo(roomId,getToken(),getWxToken(),request.getSession().getId()));
- }
- /**
- * 房间访问次数 +1
- */
- @GetMapping("/roomAddView")
- public ResultData roomAddView(@RequestParam(required = false) String roomId){
- //roomService.roomAddView(roomId);
- return ResultData.ok();
- }
- /**
- * 房间列表
- */
- @PostMapping("/roomList")
- public ResultData pageList(@RequestBody RoomListParam param){
- return ResultData.ok(roomService.pageList(param,getToken(),getWxToken()));
- }
- /**
- * 创建房间
- */
- @PostMapping("/roomAddOrUpdate")
- public ResultData createRoom(@RequestBody RoomAddParam param){
- return ResultData.ok(roomService.addOrUpdate(param,getToken()));
- }
- /**
- * 删除房间
- */
- @PostMapping("/roomDelete")
- public ResultData roomDelete(@RequestBody RoomAddParam param) {
- if(param.getRoomId() == null){
- throw new BusinessException(ResultCode.PARAM_MISS);
- }
- roomService.deleteById(param.getRoomId());
- return ResultData.ok();
- }
- @GetMapping("/checkCanDel")
- public ResultData checkCanDel(@RequestParam(required = false) String roomId) {
- if(roomId == null){
- throw new BusinessException(ResultCode.PARAM_MISS);
- }
- Room room = roomService.getById(roomId);
- if(room == null){
- throw new BusinessException(ResultCode.ROOM_MISS);
- }
- return ResultData.ok(roomService.checkCanDel(room));
- }
- /**
- * 获取分享二维码
- * roomId 房间id
- * type follower leader
- */
- @GetMapping("/roomGetShareCode")
- public ResultData roomGetShareCode(@RequestParam(required = false) String roomId){
- if(roomId == null){
- throw new BusinessException(ResultCode.PARAM_MISS);
- }
- return ResultData.ok(roomService.getWxQrCode(roomId,"follower"));
- }
- /**
- * 获取分享二维码
- */
- @GetMapping("/roomGetHostCode")
- public ResultData roomGetHostCode(@RequestParam(required = false) String roomId){
- if(roomId == null){
- throw new BusinessException(ResultCode.PARAM_MISS);
- }
- return ResultData.ok(roomService.getWxQrCode(roomId,"leader"));
- }
- /**
- * 加入房间,开启带看,退出房间
- * type 0 加入房间,1退出房间
- * role follower leader
- */
- @GetMapping("/inOrOutRoom")
- public ResultData inOrOutRoom(@RequestParam(required = false) String role,
- @RequestParam(required = false) String roomId,
- @RequestParam(required = false) Integer type,
- @RequestParam(required = false) String userId){
- String platform = request.getHeader("platform");
- if(StringUtils.isBlank(platform)){
- platform = "4dkankan";
- }
- roomService.inOrOutRoom(roomId,role,type,userId,platform);
- return ResultData.ok();
- }
- /**
- * 分享房间
- * roomId 房间ida
- */
- @GetMapping("/shareRoom")
- public ResultData shareRoom(@RequestParam(required = false) String roomId,
- @RequestParam(required = false) String userId){
- if(roomId == null){
- throw new BusinessException(ResultCode.PARAM_MISS);
- }
- roomShareLogService.saveLog(roomId,userId);
- return ResultData.ok();
- }
- /**
- * 获取房间密码
- */
- @PostMapping("/checkRoomVisitPassword")
- public ResultData checkRoomVisitPassword(@RequestBody CheckRoomPasswordParam param){
- if(StringUtils.isBlank(param.getRoomId()) || StringUtils.isBlank(param.getPassword())){
- throw new BusinessException(ResultCode.PARAM_MISS);
- }
- String roomId = param.getRoomId();
- if(param.getRoomId().contains("_")){
- roomId = param.getRoomId().split("_")[0];
- }
- Room room = roomService.getById(roomId);
- String pwd = MD5.create().digestHex(room.getVisitPassword());
- Boolean flag = pwd.equals(param.getPassword());
- if(flag){
- if(StringUtils.isNotBlank(getWxToken())){
- String redisKey = String.format(RedisKeyUtil.roomPassword, room.getRoomId(), room.getVisitPassword(),getWxToken());
- redisUtil.set(redisKey,getWxToken(),60 * 60);
- log.info("rediskey:{}",redisKey);
- }
- if(StringUtils.isNotBlank(request.getSession().getId())){
- String redisKey = String.format(RedisKeyUtil.roomPassword, room.getRoomId(), room.getVisitPassword(),request.getSession().getId());
- redisUtil.set(redisKey,request.getSession().getId(),60 * 60);
- log.info("rediskey:{}",redisKey);
- }
- }
- return ResultData.ok(flag);
- }
- //火调解散房间
- @GetMapping("/dissolveTheRoom")
- public ResultData dissolveTheRoom(@RequestParam(required = false) String roomId){
- roomService.dissolveTheRoom(roomId);
- return ResultData.ok();
- }
- //火调开启房间
- @GetMapping("/openTheRoom")
- public ResultData openTheRoom(@RequestParam(required = false) String roomId){
- roomService.openTheRoom(roomId);
- return ResultData.ok();
- }
- //根据场景码获取房间号
- @GetMapping("/getRoomIdByNum")
- public ResultData getRoomIdByNum(@RequestParam(required = false) String num){
- Room room = roomService.getRoomIdByNum(num);
- if(room == null){
- throw new BusinessException(ResultCode.ROOM_MISS);
- }
- return ResultData.ok(room);
- }
- }
|