|
@@ -1,11 +1,15 @@
|
|
|
package edu.travel.tenant.web;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.io.FileTypeUtil;
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
+import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import edu.travel.adapter.service.upload.UploadAdapter;
|
|
|
import edu.travel.remote.feign.mode.dto.tenant.AddOrUpdateTenantDto;
|
|
|
import edu.travel.remote.feign.mode.dto.tenant.AssignRolesOrMenusDto;
|
|
|
import edu.travel.remote.feign.mode.dto.tenant.EduTenantPageDto;
|
|
@@ -13,25 +17,29 @@ import edu.travel.remote.feign.mode.vo.tenant.AdminInfoRoleMenuVo;
|
|
|
import edu.travel.remote.feign.mode.vo.tenant.EduTenantVo;
|
|
|
import edu.travel.remote.feign.mode.vo.tenant.MenuTreeVo;
|
|
|
import edu.travel.remote.feign.mode.vo.tenant.SysRoleVo;
|
|
|
+import edu.travel.remote.upload.dto.EduFileDTO;
|
|
|
import edu.travel.resp.BaseResponse;
|
|
|
import edu.travel.resp.PageResponse;
|
|
|
import edu.travel.rpc.RPCBaseResponse;
|
|
|
import edu.travel.tenant.TenantRemoteController;
|
|
|
+import edu.travel.tenant.constant.BaseConstant;
|
|
|
import edu.travel.tenant.entity.EduTenant;
|
|
|
import edu.travel.tenant.entity.SysRole;
|
|
|
import edu.travel.tenant.entity.SysUserRole;
|
|
|
import edu.travel.tenant.service.ISysUserRoleService;
|
|
|
import edu.travel.tenant.service.ITenantService;
|
|
|
+import edu.travel.tenant.utils.FIleUtil;
|
|
|
import edu.travel.web.BaseController;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static edu.travel.rpc.RPCBaseResponse.error;
|
|
|
import static edu.travel.rpc.RPCBaseResponse.success;
|
|
|
|
|
|
@RestController
|
|
@@ -41,6 +49,8 @@ public class TenantController extends BaseController<EduTenant> implements Tena
|
|
|
private ITenantService tenantService;
|
|
|
@Autowired
|
|
|
private ISysUserRoleService sysUserRoleService;
|
|
|
+ @Autowired
|
|
|
+ private UploadAdapter uploadAdapter;
|
|
|
|
|
|
@GetMapping("/getTenantByPhoneNumber")
|
|
|
// @PreAuthorize("hasRole('超级管理员')")
|
|
@@ -370,5 +380,41 @@ public class TenantController extends BaseController<EduTenant> implements Tena
|
|
|
BeanUtils.copyProperties(countryRPCBaseResponse, baseCountryVoRPCBaseResponse);
|
|
|
return baseCountryVoRPCBaseResponse;
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 头像上传
|
|
|
+ */
|
|
|
+ @PostMapping("/uploadHeadImage")
|
|
|
+ public RPCBaseResponse<String> uploadHeadImage(MultipartFile file) {
|
|
|
+ if (file == null || file.isEmpty()) {
|
|
|
+ return error();
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ // 通过文件的字节流获取真实类型(Hutool自动解析魔数)
|
|
|
+ String fileType = FileTypeUtil.getType(file.getInputStream());
|
|
|
+ // 判断类型是否在支持的图片类型集合中
|
|
|
+ if (fileType != null && BaseConstant.getUserHeadType().contains(fileType.toLowerCase())) {
|
|
|
+ String filename = file.getOriginalFilename();
|
|
|
+ if(ObjectUtil.isEmpty(filename)){
|
|
|
+ return error();
|
|
|
+ }
|
|
|
+ RPCBaseResponse<String> stringRPCBaseResponse = uploadAdapter.initializeUpload();
|
|
|
+
|
|
|
+ EduFileDTO eduFileDTO = new EduFileDTO();
|
|
|
+ eduFileDTO.setUploadId(stringRPCBaseResponse.getData());
|
|
|
+ eduFileDTO.setFileType(fileType);
|
|
|
+ eduFileDTO.setFileName(filename);
|
|
|
+ eduFileDTO.setFileSysName(IdUtil.fastSimpleUUID()+ DateUtil.format(new Date(),"yyyyMMddHHmmss") +"."+fileType);
|
|
|
+ eduFileDTO.setFileMd5(FIleUtil.calculateFileMd5(file.getBytes()));
|
|
|
+ RPCBaseResponse rpcBaseResponse = uploadAdapter.uploadFile(eduFileDTO, file);
|
|
|
+ return success(rpcBaseResponse.getData().toString());
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ // 处理流读取异常或类型解析失败
|
|
|
+ return error("文件上传失败");
|
|
|
+ }
|
|
|
+ return error();
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|