Commit 83e8b041 by gdj

增加orgLogo

parent acabda69
...@@ -10,10 +10,14 @@ import com.dji.sample.manage.service.IOrgService; ...@@ -10,10 +10,14 @@ import com.dji.sample.manage.service.IOrgService;
import com.dji.sample.manage.service.IWorkspaceService; import com.dji.sample.manage.service.IWorkspaceService;
import com.dji.sdk.common.HttpResultResponse; import com.dji.sdk.common.HttpResultResponse;
import com.dji.sdk.common.PaginationData; import com.dji.sdk.common.PaginationData;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import static com.dji.sample.common.util.SecurityUtils.*; import static com.dji.sample.common.util.SecurityUtils.*;
...@@ -113,4 +117,36 @@ public class OrgController { ...@@ -113,4 +117,36 @@ public class OrgController {
return isDel ? HttpResultResponse.success() : HttpResultResponse.error(); return isDel ? HttpResultResponse.success() : HttpResultResponse.error();
} }
/**
* upload org logo
* @param req
* @param rsp
* @return
*/
@Operation(summary = "upload org logo", description = "upload org logo")
@PostMapping("/uploadLogo")
HttpResultResponse upload(MultipartFile file,
HttpServletRequest req, HttpServletResponse rsp) {
if (Objects.isNull(file)) {
return HttpResultResponse.error("No file received.");
}
aboveOrgAdminRoleAndThrowError();
String logoUrl = orgService.saveLogo(file);
return HttpResultResponse.success(logoUrl);
}
/**
* Gets information about the workspace that the current user is in.
* @param request
* @return
*/
@GetMapping("/getLogo")
public HttpResultResponse getLogo(HttpServletRequest request) {
String logoUrl = orgService.getLogo();
return HttpResultResponse.success(logoUrl);
}
} }
\ No newline at end of file
...@@ -34,6 +34,8 @@ public class OrgDTO implements Serializable { ...@@ -34,6 +34,8 @@ public class OrgDTO implements Serializable {
private String adminUserName; private String adminUserName;
@JsonProperty("admin_user_password") @JsonProperty("admin_user_password")
private String adminUserPassword; private String adminUserPassword;
// logo
private String logo;
} }
...@@ -40,4 +40,8 @@ public class UserDTO { ...@@ -40,4 +40,8 @@ public class UserDTO {
@JsonProperty("role_type") @JsonProperty("role_type")
private Integer roleType; private Integer roleType;
@JsonProperty("org_logo")
protected String orgLogo;
} }
...@@ -43,4 +43,7 @@ public class OrgEntity implements Serializable { ...@@ -43,4 +43,7 @@ public class OrgEntity implements Serializable {
@TableField(value = "admin_user_id") @TableField(value = "admin_user_id")
private String adminUserId; private String adminUserId;
@TableField(value = "logo")
private String logo;
} }
...@@ -8,6 +8,7 @@ import com.dji.sample.manage.model.entity.OrgEntity; ...@@ -8,6 +8,7 @@ import com.dji.sample.manage.model.entity.OrgEntity;
import com.dji.sample.manage.model.param.searchParam.OrgSearchParam; import com.dji.sample.manage.model.param.searchParam.OrgSearchParam;
import com.dji.sample.manage.model.param.searchParam.WorkspaceSearchParam; import com.dji.sample.manage.model.param.searchParam.WorkspaceSearchParam;
import com.dji.sdk.common.PaginationData; import com.dji.sdk.common.PaginationData;
import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
...@@ -78,4 +79,8 @@ public interface IOrgService extends IService<OrgEntity> { ...@@ -78,4 +79,8 @@ public interface IOrgService extends IService<OrgEntity> {
*/ */
boolean updateOrg(OrgDTO orgDTO); boolean updateOrg(OrgDTO orgDTO);
String saveLogo(MultipartFile file);
String getLogo();
} }
...@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dji.sample.component.oss.model.OssConfiguration;
import com.dji.sample.component.oss.service.impl.OssServiceContext;
import com.dji.sample.manage.dao.IOrgMapper; import com.dji.sample.manage.dao.IOrgMapper;
import com.dji.sample.manage.model.dto.OrgDTO; import com.dji.sample.manage.model.dto.OrgDTO;
import com.dji.sample.manage.model.dto.OrgJoinDTO; import com.dji.sample.manage.model.dto.OrgJoinDTO;
...@@ -26,7 +28,10 @@ import com.dji.sample.common.util.SecurityUtils; ...@@ -26,7 +28,10 @@ import com.dji.sample.common.util.SecurityUtils;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.net.URL;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
...@@ -50,6 +55,9 @@ public class OrgServiceImpl extends ServiceImpl<IOrgMapper, OrgEntity> implement ...@@ -50,6 +55,9 @@ public class OrgServiceImpl extends ServiceImpl<IOrgMapper, OrgEntity> implement
@Lazy @Lazy
private IUserService userService; private IUserService userService;
@Autowired
private OssServiceContext ossService;
@Override @Override
public Optional<OrgDTO> getOrgByOrgId(String orgId) { public Optional<OrgDTO> getOrgByOrgId(String orgId) {
LambdaQueryWrapper<OrgEntity> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OrgEntity> queryWrapper = new LambdaQueryWrapper<>();
...@@ -474,10 +482,68 @@ public class OrgServiceImpl extends ServiceImpl<IOrgMapper, OrgEntity> implement ...@@ -474,10 +482,68 @@ public class OrgServiceImpl extends ServiceImpl<IOrgMapper, OrgEntity> implement
.updateTime(Objects.nonNull(entity.getUpdateTime()) ? LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getUpdateTime()), ZoneId.systemDefault()) : null) .updateTime(Objects.nonNull(entity.getUpdateTime()) ? LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getUpdateTime()), ZoneId.systemDefault()) : null)
.bindCode(entity.getBindCode()) .bindCode(entity.getBindCode())
.adminUserName(adminUser != null ? adminUser.getUsername() : null) .adminUserName(adminUser != null ? adminUser.getUsername() : null)
.logo(entity.getLogo())
.build(); .build();
} }
/**
*
* @param file
* @return logoUrl
*/
@Override
public String saveLogo(MultipartFile file) {
String workspaceId = getWorkspaceId();
String orgId = getOrgId();
LambdaQueryWrapper<OrgEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(OrgEntity::getWorkspaceId, workspaceId);
wrapper.eq(OrgEntity::getOrgId, orgId);
OrgEntity orgEntity = this.getOne(wrapper);
try {
String filenameExtension = StringUtils.getFilenameExtension(file.getOriginalFilename());
String objectKey = OssConfiguration.objectDirPrefix + "/" + workspaceId + "/" + orgId + "/logos/" + UUID.randomUUID().toString().substring(0, 10) + "." + filenameExtension;
ossService.putObject(OssConfiguration.bucket, objectKey, file.getInputStream());
LambdaUpdateWrapper<OrgEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(OrgEntity::getWorkspaceId, workspaceId);
updateWrapper.eq(OrgEntity::getOrgId, orgId);
updateWrapper.set(OrgEntity::getLogo, objectKey);
this.update(updateWrapper);
URL objectUrl = ossService.getObjectUrl(OssConfiguration.bucket, objectKey);
return objectUrl.toString();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("upload fail");
}
}
@Override
public String getLogo() {
String workspaceId = getWorkspaceId();
String orgId = getOrgId();
LambdaQueryWrapper<OrgEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(OrgEntity::getWorkspaceId, workspaceId);
wrapper.eq(OrgEntity::getOrgId, orgId);
OrgEntity orgEntity = this.getOne(wrapper);
if (orgEntity != null) {
URL objectUrl = ossService.getObjectUrl(OssConfiguration.bucket, orgEntity.getLogo());
return objectUrl.toString();
} else {
throw new RuntimeException("org is null");
}
}
} }
......
...@@ -12,6 +12,8 @@ import com.dji.sample.common.model.CustomClaim; ...@@ -12,6 +12,8 @@ import com.dji.sample.common.model.CustomClaim;
import com.dji.sample.common.util.JwtUtil; import com.dji.sample.common.util.JwtUtil;
import com.dji.sample.common.util.SecurityUtils; import com.dji.sample.common.util.SecurityUtils;
import com.dji.sample.component.mqtt.config.MqttPropertyConfiguration; import com.dji.sample.component.mqtt.config.MqttPropertyConfiguration;
import com.dji.sample.component.oss.model.OssConfiguration;
import com.dji.sample.component.oss.service.impl.OssServiceContext;
import com.dji.sample.manage.dao.IUserMapper; import com.dji.sample.manage.dao.IUserMapper;
import com.dji.sample.manage.model.dto.*; import com.dji.sample.manage.model.dto.*;
import com.dji.sample.manage.model.entity.OrgEntity; import com.dji.sample.manage.model.entity.OrgEntity;
...@@ -35,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -35,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.net.URL;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
...@@ -64,6 +67,9 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem ...@@ -64,6 +67,9 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem
@Autowired @Autowired
private IWorkspaceService workspaceService; private IWorkspaceService workspaceService;
@Autowired
private OssServiceContext ossService;
@Override @Override
public HttpResultResponse getUserByUsername(String username, String workspaceId) { public HttpResultResponse getUserByUsername(String username, String workspaceId) {
...@@ -181,6 +187,9 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem ...@@ -181,6 +187,9 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem
userDTO.setRoleType(roleType); userDTO.setRoleType(roleType);
userDTO.setOrgId(orgEntity.getOrgId()); userDTO.setOrgId(orgEntity.getOrgId());
URL objectUrl = ossService.getObjectUrl(OssConfiguration.bucket, orgEntity.getLogo());
userDTO.setOrgLogo(objectUrl.toString());
return HttpResultResponse.success(userDTO); return HttpResultResponse.success(userDTO);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment