Commit 83e8b041 by gdj

增加orgLogo

parent acabda69
......@@ -10,10 +10,14 @@ import com.dji.sample.manage.service.IOrgService;
import com.dji.sample.manage.service.IWorkspaceService;
import com.dji.sdk.common.HttpResultResponse;
import com.dji.sdk.common.PaginationData;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Objects;
import java.util.Optional;
import static com.dji.sample.common.util.SecurityUtils.*;
......@@ -113,4 +117,36 @@ public class OrgController {
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 {
private String adminUserName;
@JsonProperty("admin_user_password")
private String adminUserPassword;
// logo
private String logo;
}
......@@ -40,4 +40,8 @@ public class UserDTO {
@JsonProperty("role_type")
private Integer roleType;
@JsonProperty("org_logo")
protected String orgLogo;
}
......@@ -43,4 +43,7 @@ public class OrgEntity implements Serializable {
@TableField(value = "admin_user_id")
private String adminUserId;
@TableField(value = "logo")
private String logo;
}
......@@ -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.WorkspaceSearchParam;
import com.dji.sdk.common.PaginationData;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Optional;
......@@ -78,4 +79,8 @@ public interface IOrgService extends IService<OrgEntity> {
*/
boolean updateOrg(OrgDTO orgDTO);
String saveLogo(MultipartFile file);
String getLogo();
}
......@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.model.dto.OrgDTO;
import com.dji.sample.manage.model.dto.OrgJoinDTO;
......@@ -26,7 +28,10 @@ import com.dji.sample.common.util.SecurityUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
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.LocalDateTime;
import java.time.ZoneId;
......@@ -50,6 +55,9 @@ public class OrgServiceImpl extends ServiceImpl<IOrgMapper, OrgEntity> implement
@Lazy
private IUserService userService;
@Autowired
private OssServiceContext ossService;
@Override
public Optional<OrgDTO> getOrgByOrgId(String orgId) {
LambdaQueryWrapper<OrgEntity> queryWrapper = new LambdaQueryWrapper<>();
......@@ -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)
.bindCode(entity.getBindCode())
.adminUserName(adminUser != null ? adminUser.getUsername() : null)
.logo(entity.getLogo())
.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;
import com.dji.sample.common.util.JwtUtil;
import com.dji.sample.common.util.SecurityUtils;
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.model.dto.*;
import com.dji.sample.manage.model.entity.OrgEntity;
......@@ -35,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.net.URL;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
......@@ -64,6 +67,9 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem
@Autowired
private IWorkspaceService workspaceService;
@Autowired
private OssServiceContext ossService;
@Override
public HttpResultResponse getUserByUsername(String username, String workspaceId) {
......@@ -181,6 +187,9 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem
userDTO.setRoleType(roleType);
userDTO.setOrgId(orgEntity.getOrgId());
URL objectUrl = ossService.getObjectUrl(OssConfiguration.bucket, orgEntity.getLogo());
userDTO.setOrgLogo(objectUrl.toString());
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