package org.example.wps3.api;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
/**
* 获取文件编辑信息,需要用户实现,并配置在应用管理中,需要引入依赖包
* <pre>
* org.springframework.boot.spring-boot-starter-web
* org.projectlombok.lombok
* org.apache.commons.commons-lang3
* </pre>
*/
@RestController
public class GetEditInfoApi {
@GetMapping("/v1/3rd/edit/info")
public ResponseEntity<Object> getEditInfo(HttpServletResponse response,
@RequestHeader(name = "X-Weboffice-File-Id", defaultValue = "") String fileId,
@RequestHeader(name = "x-wps-weboffice-token", required = false) String token) {
// TODO 校验token,需要用户根据实际情况实现,此处仅供参考
if (StringUtils.isNotBlank(token)) {
//TODO 需要用户根据实际情况实现
}
// TODO 自定义校验规则,需要用户根据实际情况实现,此处仅供参考
if (StringUtils.isBlank(fileId)) {
return new ResponseEntity<>(new ErrorInfo()
.setResult(20501001)
.setMessage("文件id不能为空"), HttpStatus.BAD_REQUEST);
}
// TODO 组装文件信息,需要用户根据实际情况实现,此处仅供参考
EditInfo editInfo = new EditInfo()
.setFile(new EditInfo.FileInfo()
.setId("132aa30a87064")
.setPreviewPages(3))
.setUserAcl(new EditInfo.UserAcl()
.setRename(1)
.setHistory(1)
.setCopy(1)
.setExport(1)
.setPrint(1))
.setWatermark(new EditInfo.Watermark()
.setType(1)
.setValue("禁止传阅")
.setFillStyle("rgba( 192, 192, 192, 0.6 )")
.setFont("bold 20px Serif")
.setRotate(-0.7853982)
.setHorizontal(50)
.setVertical(100))
.setUser(new EditInfo.UserInfo()
.setId("id1000")
.setName("wps-1000")
.setPermission("read")
.setAvatarUrl("http://xxx.cn/id=1000"));
return new ResponseEntity<>(editInfo, HttpStatus.OK);
}
@Accessors(chain = true)
@Data
public static class ErrorInfo {
@JsonProperty("result")
private Integer result;
@JsonProperty("message")
private String message;
}
@Accessors(chain = true)
@Data
public static class EditInfo {
@JsonProperty("file")
private FileInfo file;
@JsonProperty("user")
private UserInfo user;
@JsonProperty("user_acl")
private UserAcl userAcl;
@JsonProperty("watermark")
private Watermark watermark;
/**
* 文件信息
*/
@Accessors(chain = true)
@Data
public static class FileInfo {
@JsonProperty("id")
private String id; //文件id,字符串长度小于32
@JsonProperty("preview_pages")
private Integer previewPages; // 限制预览页数
}
@Accessors(chain = true)
@Data
public static class UserAcl {
@JsonProperty("rename")
private Integer rename; // 重命名权限,1为打开该权限,0为关闭该权限,默认为0
@JsonProperty("history")
private Integer history; // 重命名权限,1为打开该权限,0为关闭该权限,默认为1
@JsonProperty("copy")
private Integer copy; // 复制权限,1为打开该权限,0为关闭该权限
@JsonProperty("export")
private Integer export; // 导出权限,1为打开该权限,0为关闭该权限
@JsonProperty("print")
private Integer print; // 打印权限,1为打开该权限,0为关闭该权限
}
@Accessors(chain = true)
@Data
public static class Watermark {
@JsonProperty("type")
private Integer type = 0; // 水印类型, 0为无水印; 1为文字水印
@JsonProperty("value")
private String value; // 文字水印的文字,当type为1时此字段必选
@JsonProperty("fillstyle")
private String fillStyle; //水印的透明度,非必选,有默认值
@JsonProperty("font")
private String font; //水印的字体,非必选,有默认值
@JsonProperty("rotate")
private Double rotate; //水印的旋转度,非必选,有默认值
@JsonProperty("horizontal")
private Integer horizontal; //水印水平间距,非必选,有默认值
@JsonProperty("vertical")
private Integer vertical; // 水印垂直间距,非必选,有默认值
}
/**
* 用户信息
*/
@Accessors(chain = true)
@Data
public static class UserInfo {
@JsonProperty("id")
private String id; // 用户id,长度小于32
@JsonProperty("name")
private String name; // 用户名称
@JsonProperty("permission")
private String permission; // 用户操作权限,write:可编辑,read:预览
@JsonProperty("avatar_url")
private String avatarUrl; // 用户头像地址,支持url和base64
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
















































共 36 条
- 1










林学习者
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0