From 99914cdeca67d5822b3a764937031d61b54a44be Mon Sep 17 00:00:00 2001 From: ruibaby Date: Wed, 20 Feb 2019 17:07:47 +0800 Subject: [PATCH] :art: modify ApiOptionController.java --- .../service/base/AbstractCrudService.java | 2 + .../web/controller/api/ApiMetaWeBlog.java | 280 ------------------ .../controller/api/ApiOptionController.java | 6 - 3 files changed, 2 insertions(+), 286 deletions(-) delete mode 100644 src/main/java/cc/ryanc/halo/web/controller/api/ApiMetaWeBlog.java diff --git a/src/main/java/cc/ryanc/halo/service/base/AbstractCrudService.java b/src/main/java/cc/ryanc/halo/service/base/AbstractCrudService.java index 5c8dc6783..7a5f8866b 100644 --- a/src/main/java/cc/ryanc/halo/service/base/AbstractCrudService.java +++ b/src/main/java/cc/ryanc/halo/service/base/AbstractCrudService.java @@ -21,6 +21,8 @@ import java.util.Optional; * * @param domain type * @param id type + * + * @author johnniang */ public abstract class AbstractCrudService implements CrudService { diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiMetaWeBlog.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiMetaWeBlog.java deleted file mode 100644 index bceff2eab..000000000 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiMetaWeBlog.java +++ /dev/null @@ -1,280 +0,0 @@ -package cc.ryanc.halo.web.controller.api; - -import cc.ryanc.halo.model.domain.Category; -import cc.ryanc.halo.model.domain.Post; -import cc.ryanc.halo.model.domain.User; -import cc.ryanc.halo.model.enums.BlogPropertiesEnum; -import cc.ryanc.halo.service.CategoryService; -import cc.ryanc.halo.service.PostService; -import cc.ryanc.halo.service.UserService; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.io.IoUtil; -import cn.hutool.core.text.StrBuilder; -import cn.hutool.crypto.SecureUtil; -import lombok.extern.slf4j.Slf4j; -import org.json.JSONArray; -import org.json.JSONObject; -import org.json.XML; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.servlet.ServletInputStream; -import javax.servlet.http.HttpServletRequest; -import java.util.Date; -import java.util.List; - -import static cc.ryanc.halo.model.dto.HaloConst.OPTIONS; - -/** - * @author : RYAN0UP - * @date : 2018/12/11 - */ -@Slf4j -@RestController -@RequestMapping(value = "/apis/metaweblog", produces = "text/xml;charset=UTF-8") -public class ApiMetaWeBlog { - - @Autowired - private UserService userService; - - @Autowired - private CategoryService categoryService; - - @Autowired - private PostService postService; - - - /** - * @param request request - * @return String - */ - @PostMapping - public String metaWeBlog(HttpServletRequest request) { - String responseContent = ""; - String xml; - try { - final ServletInputStream inputStream = request.getInputStream(); - xml = IoUtil.read(inputStream, "utf-8"); - final JSONObject requestJSONObject = XML.toJSONObject(xml); - - final JSONObject methodCall = requestJSONObject.getJSONObject("methodCall"); - final String methodName = methodCall.getString("methodName"); - - log.info("MetaWeblog[methodName={}]", methodName); - - final JSONArray params = methodCall.getJSONObject("params").getJSONArray("param"); - - final String userEmail = params.getJSONObject(1).getJSONObject("value").optString("string"); - - final String userPwd = params.getJSONObject(2).getJSONObject("value").get("string").toString(); - - final User user = userService.userLoginByEmail(userEmail, SecureUtil.md5(userPwd)); - - if (null == user) { - throw new Exception("用户密码错误!"); - } - - if ("blogger.getUsersBlogs".equals(methodName)) { - log.info("获取用户博客"); - responseContent = getUserBlogs(); - } else if ("metaWeblog.getCategories".equals(methodName)) { - log.info("获取分类"); - responseContent = getCategories(); - } else if ("metaWeblog.getRecentPosts".equals(methodName)) { - - } else if ("metaWeblog.newPost".equals(methodName)) { - Post post = parsetPost(methodCall); - post.setUser(user); - post = postService.create(post); - final StrBuilder strBuilder = new StrBuilder(""); - strBuilder.append(""); - strBuilder.append(post.getPostId()); - strBuilder.append(""); - responseContent = strBuilder.toString(); - } else if ("metaWeblog.getPost".equals(methodName)) { - final Long postId = Long.parseLong(params.getJSONObject(0).getJSONObject("value").optString("string")); - responseContent = getPost(postId); - } else if ("metaWeblog.editPost".equals(methodName)) { - Post post = parsetPost(methodCall); - final Long postId = Long.parseLong(params.getJSONObject(0).getJSONObject("value").optString("string")); - post.setPostId(postId); - post.setUser(user); - postService.create(post); - final StrBuilder strBuilder = new StrBuilder(""); - strBuilder.append(""); - strBuilder.append(postId); - strBuilder.append(""); - responseContent = strBuilder.toString(); - } else if ("blogger.deletePost".equals(methodName)) { - final Long postId = Long.parseLong(params.getJSONObject(0).getJSONObject("value").optString("string")); - postService.removeById(postId); - final StrBuilder strBuilder = new StrBuilder(""); - strBuilder.append(""); - strBuilder.append(true); - strBuilder.append(""); - responseContent = strBuilder.toString(); - } - - } catch (final Exception e) { - e.printStackTrace(); - } - return responseContent; - } - - /** - * @param methodCall - * @return - * @throws Exception - */ - private Post parsetPost(final JSONObject methodCall) throws Exception { - final Post ret = new Post(); - - final JSONArray params = methodCall.getJSONObject("params").getJSONArray("param"); - final JSONObject post = params.getJSONObject(3).getJSONObject("value").getJSONObject("struct"); - final JSONArray members = post.getJSONArray("member"); - for (int i = 0; i < members.length(); i++) { - final JSONObject member = members.getJSONObject(i); - final String name = member.getString("name"); - if ("dateCreated".equals(name)) { - final String dateString = member.getJSONObject("value").getString("dateTime.iso8601"); - Date date = DateUtil.parseDate(dateString); - ret.setPostDate(date); - } else if ("title".equals(name)) { - ret.setPostTitle(member.getJSONObject("value").getString("string")); - } else if ("description".equals(name)) { - final String content = member.getJSONObject("value").optString("string"); - ret.setPostContent(content); - ret.setPostContentMd(content); - } else if ("categories".equals(name)) { - final StrBuilder cateBuilder = new StrBuilder(); - final JSONObject data = member.getJSONObject("value").getJSONObject("array").getJSONObject("data"); - if (0 == data.length()) { - throw new Exception("At least one category"); - } - } - } - return ret; - } - - /** - * 根据文章编号获取文章信息 - * - * @param postId 文章编号 - * @return 文章信息xml格式 - */ - private String getPost(Long postId) { - final StrBuilder strBuilder = new StrBuilder(""); - final String posts = buildPost(postId); - strBuilder.append(posts); - strBuilder.append(""); - return strBuilder.toString(); - } - - /** - * 根据文章编号构建文章信息 - * - * @param postId 文章编号 - * @return 文章信息xml格式 - */ - private String buildPost(final Long postId) { - final StrBuilder strBuilder = new StrBuilder(); - final Post post = postService.fetchById(postId).orElse(new Post()); - strBuilder.append(""); - strBuilder.append("dateCreated"); - strBuilder.append(""); - strBuilder.append(DateUtil.format(post.getPostDate(), "yyyy-MM-dd'T'HH:mm:ssZZ")); - strBuilder.append(""); - strBuilder.append("description"); - strBuilder.append(""); - strBuilder.append(post.getPostSummary()); - strBuilder.append(""); - strBuilder.append("title"); - strBuilder.append(""); - strBuilder.append(post.getPostTitle()); - strBuilder.append(""); - strBuilder.append("categories"); - strBuilder.append(""); - List categories = post.getCategories(); - for (Category category : categories) { - strBuilder.append("").append(category.getCateName()).append(""); - } - strBuilder.append(""); - return strBuilder.toString(); - } - - /** - * 获取用户博客信息 - * - * @return 用户博客信息xml格式 - */ - private String getUserBlogs() { - final StrBuilder strBuilder = new StrBuilder( - ""); - final String blogInfo = buildBlogInfo(); - strBuilder.append(blogInfo); - strBuilder.append(""); - - return strBuilder.toString(); - } - - /** - * 构建博客信息 - * - * @return 博客信息xml节点 - */ - private String buildBlogInfo() { - final String blogId = OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp()); - final String blogTitle = OPTIONS.get(BlogPropertiesEnum.BLOG_TITLE.getProp()); - final StrBuilder strBuilder = new StrBuilder("blogid"); - strBuilder.append(blogId); - strBuilder.append(""); - strBuilder.append("url"); - strBuilder.append(OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp())); - strBuilder.append(""); - strBuilder.append("blogName"); - strBuilder.append(blogTitle); - strBuilder.append(""); - return strBuilder.toString(); - } - - /** - * 组装分类信息 - * - * @return 分类信息xml格式 - * @throws Exception Exception - */ - private String getCategories() throws Exception { - final StrBuilder strBuilder = new StrBuilder( - ""); - final String categories = buildCategories(); - strBuilder.append(categories); - strBuilder.append(""); - - return strBuilder.toString(); - } - - /** - * 构建分类信息 - * - * @return 分类信息xml节点 - * @throws Exception Exception - */ - private String buildCategories() throws Exception { - final StrBuilder strBuilder = new StrBuilder(); - final List categories = categoryService.listAll(); - for (Category category : categories) { - final String cateName = category.getCateName(); - final Long cateId = category.getCateId(); - - strBuilder.append(""); - strBuilder.append("description").append("").append(cateName).append(""); - strBuilder.append("title").append("").append(cateName).append(""); - strBuilder.append("categoryid").append("").append(cateId).append(""); - strBuilder.append("htmlUrl").append("").append(OPTIONS.get(BlogPropertiesEnum.BLOG_URL.getProp())).append("/categories/").append(cateName).append(""); - strBuilder.append(""); - } - return strBuilder.toString(); - } -} diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiOptionController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiOptionController.java index f5ff058af..59216a202 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiOptionController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiOptionController.java @@ -58,12 +58,6 @@ public class ApiOptionController { @GetMapping public JsonResult options() { final Map options = optionsService.findAllOptions(); - //去掉隐私元素 - options.remove(BlogPropertiesEnum.MAIL_SMTP_HOST.getProp()); - options.remove(BlogPropertiesEnum.MAIL_FROM_NAME.getProp()); - options.remove(BlogPropertiesEnum.MAIL_SMTP_PASSWORD.getProp()); - options.remove(BlogPropertiesEnum.MAIL_SMTP_USERNAME.getProp()); - options.remove(BlogPropertiesEnum.MAIL_SMTP_USERNAME.getProp()); return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), options); }