Browse Source

文件上传后台配置

master
La123123 4 weeks ago
parent
commit
ec1415c778
  1. 11
      im-platform/src/main/java/com/bx/implatform/controller/FileController.java
  2. 17
      im-platform/src/main/java/com/bx/implatform/controller/LoginController.java
  3. 5
      im-platform/src/main/java/com/bx/implatform/entity/ImAgent.java
  4. 2
      im-platform/src/main/java/com/bx/implatform/service/ImAgentService.java
  5. 33
      im-platform/src/main/java/com/bx/implatform/service/impl/ImAgentServiceImpl.java
  6. 3254
      im-uniapp/pages/chat/chat-box.vue

11
im-platform/src/main/java/com/bx/implatform/controller/FileController.java

@ -1,8 +1,10 @@
package com.bx.implatform.controller; package com.bx.implatform.controller;
import com.bx.implatform.enums.ResultCode;
import com.bx.implatform.result.Result; import com.bx.implatform.result.Result;
import com.bx.implatform.result.ResultUtils; import com.bx.implatform.result.ResultUtils;
import com.bx.implatform.service.FileService; import com.bx.implatform.service.FileService;
import com.bx.implatform.service.ImAgentService;
import com.bx.implatform.vo.UploadImageVO; import com.bx.implatform.vo.UploadImageVO;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@ -22,6 +24,8 @@ public class FileController {
private final FileService fileService; private final FileService fileService;
private final ImAgentService agentService;
@Operation(summary = "上传图片", description = "上传图片,上传后返回原图和缩略图的url") @Operation(summary = "上传图片", description = "上传图片,上传后返回原图和缩略图的url")
@PostMapping("/image/upload") @PostMapping("/image/upload")
public Result<UploadImageVO> uploadImage(@RequestParam("file") MultipartFile file, public Result<UploadImageVO> uploadImage(@RequestParam("file") MultipartFile file,
@ -30,8 +34,13 @@ public class FileController {
} }
@Operation(summary = "上传文件", description = "上传文件,上传后返回文件url") @Operation(summary = "上传文件", description = "上传文件,上传后返回文件url")
//@PostMapping("/file/upload") @PostMapping("/file/upload")
public Result<String> uploadFile(@RequestParam("file") MultipartFile file) { public Result<String> uploadFile(@RequestParam("file") MultipartFile file) {
if (!agentService.ifOpenFile()) {
return ResultUtils.error(ResultCode.XSS_PARAM_ERROR);
}
return ResultUtils.success(fileService.uploadFile(file), Strings.EMPTY); return ResultUtils.success(fileService.uploadFile(file), Strings.EMPTY);
} }

17
im-platform/src/main/java/com/bx/implatform/controller/LoginController.java

@ -1,10 +1,12 @@
package com.bx.implatform.controller; package com.bx.implatform.controller;
import cn.hutool.json.JSONObject;
import com.bx.implatform.dto.LoginDTO; import com.bx.implatform.dto.LoginDTO;
import com.bx.implatform.dto.ModifyPwdDTO; import com.bx.implatform.dto.ModifyPwdDTO;
import com.bx.implatform.dto.RegisterDTO; import com.bx.implatform.dto.RegisterDTO;
import com.bx.implatform.result.Result; import com.bx.implatform.result.Result;
import com.bx.implatform.result.ResultUtils; import com.bx.implatform.result.ResultUtils;
import com.bx.implatform.service.ImAgentService;
import com.bx.implatform.service.UserService; import com.bx.implatform.service.UserService;
import com.bx.implatform.vo.LoginVO; import com.bx.implatform.vo.LoginVO;
import com.github.xiaoymin.knife4j.annotations.Ignore; import com.github.xiaoymin.knife4j.annotations.Ignore;
@ -21,6 +23,8 @@ public class LoginController {
private final UserService userService; private final UserService userService;
private final ImAgentService agentService;
@PostMapping("/login") @PostMapping("/login")
@Operation(summary = "用户登录", description = "用户登录") @Operation(summary = "用户登录", description = "用户登录")
public Result<LoginVO> login(@Valid @RequestBody LoginDTO dto) { public Result<LoginVO> login(@Valid @RequestBody LoginDTO dto) {
@ -56,4 +60,17 @@ public class LoginController {
return ResultUtils.success(); return ResultUtils.success();
} }
@PostMapping("/getSetting")
@Operation(summary = "获取配置", description = "用户注册")
public Result register() {
JSONObject jsonObject = new JSONObject();
if(agentService.ifOpenFile()){
jsonObject.set("isFileOpen", 1);
}else{
jsonObject.set("isFileOpen", 0);
}
return ResultUtils.success(jsonObject);
}
} }

5
im-platform/src/main/java/com/bx/implatform/entity/ImAgent.java

@ -60,4 +60,9 @@ public class ImAgent {
* 客服人数上限 * 客服人数上限
*/ */
private Long maxCustomer; private Long maxCustomer;
/**
* 是否开启文件上传
*/
private int isFileOpen;
} }

2
im-platform/src/main/java/com/bx/implatform/service/ImAgentService.java

@ -11,4 +11,6 @@ public interface ImAgentService extends IService<ImAgent> {
* @return 如果套餐过期返回true否则返回false * @return 如果套餐过期返回true否则返回false
*/ */
boolean isPackageExpire(String uniqueToken); boolean isPackageExpire(String uniqueToken);
boolean ifOpenFile();
} }

33
im-platform/src/main/java/com/bx/implatform/service/impl/ImAgentServiceImpl.java

@ -1,10 +1,14 @@
package com.bx.implatform.service.impl; package com.bx.implatform.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bx.implatform.entity.ImAgent; import com.bx.implatform.entity.ImAgent;
import com.bx.implatform.entity.User;
import com.bx.implatform.mapper.ImAgentMapper; import com.bx.implatform.mapper.ImAgentMapper;
import com.bx.implatform.mapper.UserMapper;
import com.bx.implatform.service.ImAgentService; import com.bx.implatform.service.ImAgentService;
import com.bx.implatform.session.SessionContext;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -18,6 +22,8 @@ public class ImAgentServiceImpl extends ServiceImpl<ImAgentMapper, ImAgent> impl
private final ImAgentMapper baseMapper; private final ImAgentMapper baseMapper;
private final UserMapper userMapper;
@Override @Override
public boolean isPackageExpire(String uniqueToken) { public boolean isPackageExpire(String uniqueToken) {
LambdaQueryWrapper <ImAgent> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper <ImAgent> queryWrapper = new LambdaQueryWrapper<>();
@ -35,4 +41,31 @@ public class ImAgentServiceImpl extends ServiceImpl<ImAgentMapper, ImAgent> impl
//过期 //过期
return expireTime.before(new Date()); return expireTime.before(new Date());
} }
@Override
public boolean ifOpenFile() {
Long userId = SessionContext.getSession().getUserId();
if(userId == null) {
return false;
}
User user = userMapper.selectById(userId);
if(user == null || ObjectUtil.isEmpty(user)){
return false;
}
String token = user.getUniqueToken();
if(token == null || ObjectUtil.isEmpty(token)){
return false;
}
ImAgent imAgent = baseMapper.selectOne(new LambdaQueryWrapper<ImAgent>().eq(ImAgent::getUniqueToken, token));
if(imAgent == null || ObjectUtil.isEmpty(imAgent)) {
return false;
}
int isFileOpen = imAgent.getIsFileOpen();
return isFileOpen == 1;
}
} }

3254
im-uniapp/pages/chat/chat-box.vue

File diff suppressed because it is too large
Loading…
Cancel
Save