From ebddbc0ecf715cd2521ae12c89f7b28d74e93b7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sun, 29 Mar 2020 14:16:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=93=8D=E5=BA=94=E7=9A=84Ta?= =?UTF-8?q?g=E7=9A=84articles=E5=AD=97=E6=AE=B5=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../celess/blog/controller/TagController.java | 8 ++-- .../cn/celess/blog/entity/model/TagModel.java | 41 +++++++++++++++++++ .../cn/celess/blog/service/TagService.java | 15 +++---- .../service/serviceimpl/TagServiceImpl.java | 39 +++++++++++------- .../blog/controller/TagControllerTest.java | 15 ++++--- 5 files changed, 86 insertions(+), 32 deletions(-) create mode 100644 src/main/java/cn/celess/blog/entity/model/TagModel.java diff --git a/src/main/java/cn/celess/blog/controller/TagController.java b/src/main/java/cn/celess/blog/controller/TagController.java index c942f60..4df2da2 100644 --- a/src/main/java/cn/celess/blog/controller/TagController.java +++ b/src/main/java/cn/celess/blog/controller/TagController.java @@ -2,6 +2,7 @@ package cn.celess.blog.controller; import cn.celess.blog.entity.Response; import cn.celess.blog.entity.Tag; +import cn.celess.blog.entity.model.TagModel; import cn.celess.blog.service.TagService; import cn.celess.blog.util.ResponseUtil; import net.sf.json.JSONObject; @@ -56,12 +57,11 @@ public class TagController { @GetMapping("/tags/nac") public Response getTagNameAndCount() { List nameAndCount = new ArrayList<>(); - List all = tagService.findAll(); - for (Tag t : all) { + List all = tagService.findAll(); + for (TagModel t : all) { JSONObject jsonObject = new JSONObject(); jsonObject.put("name", t.getName()); - String articles = t.getArticles(); - jsonObject.put("size", articles == null ? 0 : articles.split(",").length); + jsonObject.put("size", t.getArticles() == null ? 0 : t.getArticles().size()); nameAndCount.add(jsonObject); } return ResponseUtil.success(nameAndCount); diff --git a/src/main/java/cn/celess/blog/entity/model/TagModel.java b/src/main/java/cn/celess/blog/entity/model/TagModel.java new file mode 100644 index 0000000..a4111c1 --- /dev/null +++ b/src/main/java/cn/celess/blog/entity/model/TagModel.java @@ -0,0 +1,41 @@ +package cn.celess.blog.entity.model; + +import cn.celess.blog.entity.Tag; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: 小海 + * @Date: 2020-03-29 13:56 + * @Desc: + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class TagModel { + private Long id; + + private String name; + + private List articles; + + public TagModel(Tag tag) { + this.id = tag.getId(); + this.name = tag.getName(); + if (tag.getArticles() == null || tag.getArticles().length() == 0) { + articles = null; + } else { + articles = new ArrayList<>(); + for (String s : tag.getArticles().split(",")) { + if ("".equals(s)) { + return; + } + articles.add(Integer.parseInt(s)); + } + } + } +} diff --git a/src/main/java/cn/celess/blog/service/TagService.java b/src/main/java/cn/celess/blog/service/TagService.java index e9b3301..73c4a04 100644 --- a/src/main/java/cn/celess/blog/service/TagService.java +++ b/src/main/java/cn/celess/blog/service/TagService.java @@ -1,6 +1,7 @@ package cn.celess.blog.service; import cn.celess.blog.entity.Tag; +import cn.celess.blog.entity.model.TagModel; import com.github.pagehelper.PageInfo; import org.springframework.stereotype.Service; @@ -18,7 +19,7 @@ public interface TagService { * @param name 标签名 * @return 新增后的数据 */ - Tag create(String name); + TagModel create(String name); /** * 新增数据 @@ -27,7 +28,7 @@ public interface TagService { * @return 新增后的数据 */ - Tag create(Tag tag); + TagModel create(Tag tag); /** * 删除数据 @@ -44,7 +45,7 @@ public interface TagService { * @param name 改名的name值 * @return 更新后的数据 */ - Tag update(Long id, String name); + TagModel update(Long id, String name); /** * 查询单个标签信息 @@ -52,7 +53,7 @@ public interface TagService { * @param tagId id * @return 标签的数据 */ - Tag retrieveOneById(long tagId); + TagModel retrieveOneById(long tagId); /** * 通过name查询标签的信息 @@ -60,7 +61,7 @@ public interface TagService { * @param name tag的名称 * @return 标签数据 */ - Tag retrieveOneByName(String name); + TagModel retrieveOneByName(String name); /** @@ -70,13 +71,13 @@ public interface TagService { * @param page 数据页 * @return 分页数据 */ - PageInfo retrievePage(int page, int count); + PageInfo retrievePage(int page, int count); /** * 获取全部标签数据 * * @return 标签数据列表 */ - List findAll(); + List findAll(); } diff --git a/src/main/java/cn/celess/blog/service/serviceimpl/TagServiceImpl.java b/src/main/java/cn/celess/blog/service/serviceimpl/TagServiceImpl.java index 098c7ca..49d4bc4 100644 --- a/src/main/java/cn/celess/blog/service/serviceimpl/TagServiceImpl.java +++ b/src/main/java/cn/celess/blog/service/serviceimpl/TagServiceImpl.java @@ -3,6 +3,7 @@ package cn.celess.blog.service.serviceimpl; import cn.celess.blog.enmu.ResponseEnum; import cn.celess.blog.entity.Article; import cn.celess.blog.entity.Tag; +import cn.celess.blog.entity.model.TagModel; import cn.celess.blog.exception.MyException; import cn.celess.blog.mapper.ArticleMapper; import cn.celess.blog.mapper.TagMapper; @@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.List; /** @@ -29,7 +31,7 @@ public class TagServiceImpl implements TagService { ArticleMapper articleMapper; @Override - public Tag create(String name) { + public TagModel create(String name) { boolean b = tagMapper.existsByName(name); if (b) { throw new MyException(ResponseEnum.TAG_HAS_EXIST); @@ -37,16 +39,16 @@ public class TagServiceImpl implements TagService { Tag tag = new Tag(); tag.setName(name); tagMapper.insert(tag); - return tag; + return new TagModel(tag); } @Override - public Tag create(Tag tag) { + public TagModel create(Tag tag) { if (tag == null) { throw new MyException(ResponseEnum.PARAMETERS_ERROR); } tagMapper.insert(tag); - return tag; + return new TagModel(tag); } @Override @@ -55,11 +57,12 @@ public class TagServiceImpl implements TagService { if (tag == null) { throw new MyException(ResponseEnum.TAG_NOT_EXIST); } - if (tag.getArticles()==null){ + if (tag.getArticles() == null) { return tagMapper.delete(tagId) == 1; } String[] articleArray = tag.getArticles().split(","); for (int i = 0; i < articleArray.length; i++) { + // FIXME :: bug if (articleArray[i] == null || "".equals(articleArray)) { continue; } @@ -76,7 +79,7 @@ public class TagServiceImpl implements TagService { @Override - public Tag update(Long id,String name) { + public TagModel update(Long id, String name) { if (id == null) { throw new MyException(ResponseEnum.PARAMETERS_ERROR.getCode(), "缺少ID"); } @@ -84,37 +87,43 @@ public class TagServiceImpl implements TagService { tagFromDB.setName(name); tagMapper.update(tagFromDB); - return tagFromDB; + return new TagModel(tagFromDB); } @Override - public Tag retrieveOneById(long tagId) { + public TagModel retrieveOneById(long tagId) { Tag tag = tagMapper.findTagById(tagId); if (tag == null) { throw new MyException(ResponseEnum.TAG_NOT_EXIST); } - return tag; + return new TagModel(tag); } @Override - public Tag retrieveOneByName(String name) { + public TagModel retrieveOneByName(String name) { Tag tag = tagMapper.findTagByName(name); if (tag == null) { throw new MyException(ResponseEnum.TAG_NOT_EXIST); } - return tag; + return new TagModel(tag); } @Override - public PageInfo retrievePage(int page, int count) { + public PageInfo retrievePage(int page, int count) { PageHelper.startPage(page, count); - PageInfo pageInfo = new PageInfo(tagMapper.findAll()); + List tagList = tagMapper.findAll(); + PageInfo pageInfo = new PageInfo(tagList); + List list = new ArrayList<>(); + tagList.forEach(e -> list.add(new TagModel(e))); + pageInfo.setList(list); return pageInfo; } @Override - public List findAll() { - return tagMapper.findAll(); + public List findAll() { + List list = new ArrayList<>(); + tagMapper.findAll().forEach(e -> list.add(new TagModel(e))); + return list; } } diff --git a/src/test/java/cn/celess/blog/controller/TagControllerTest.java b/src/test/java/cn/celess/blog/controller/TagControllerTest.java index f742c55..578137d 100644 --- a/src/test/java/cn/celess/blog/controller/TagControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/TagControllerTest.java @@ -2,6 +2,7 @@ package cn.celess.blog.controller; import cn.celess.blog.BaseTest; import cn.celess.blog.entity.Tag; +import cn.celess.blog.entity.model.TagModel; import cn.celess.blog.mapper.TagMapper; import com.github.pagehelper.PageInfo; import net.sf.json.JSONArray; @@ -29,7 +30,7 @@ public class TagControllerTest extends BaseTest { JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); assertEquals(SUCCESS.getCode(), object.getInt(Code)); JSONObject resJson = object.getJSONObject(Result); - Tag tag = (Tag) JSONObject.toBean(resJson, Tag.class); + TagModel tag = (TagModel) JSONObject.toBean(resJson, TagModel.class); assertNotNull(tag.getId()); assertEquals(name, tag.getName()); }); @@ -63,9 +64,11 @@ public class TagControllerTest extends BaseTest { JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); assertEquals(SUCCESS.getCode(), object.getInt(Code)); assertNotNull(object.getJSONObject(Result)); - Tag t = (Tag) JSONObject.toBean(object.getJSONObject(Result), Tag.class); + TagModel t = (TagModel) JSONObject.toBean(object.getJSONObject(Result), TagModel.class); assertEquals(name, t.getName()); - assertEquals(tag.getArticles(), t.getArticles()); + StringBuilder s = new StringBuilder(); + t.getArticles().forEach(e -> s.append(e).append(",")); + assertEquals(tag.getArticles(), s.toString()); assertEquals(tag.getId(), t.getId()); }); @@ -79,7 +82,7 @@ public class TagControllerTest extends BaseTest { JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); assertEquals(SUCCESS.getCode(), object.getInt(Code)); assertNotNull(object.getJSONObject(Result)); - Tag t = (Tag) JSONObject.toBean(object.getJSONObject(Result), Tag.class); + TagModel t = (TagModel) JSONObject.toBean(object.getJSONObject(Result), TagModel.class); assertEquals(tag.getId(), t.getId()); assertNotNull(t.getName()); }); @@ -93,7 +96,7 @@ public class TagControllerTest extends BaseTest { JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); assertEquals(SUCCESS.getCode(), object.getInt(Code)); assertNotNull(object.getJSONObject(Result)); - Tag t = (Tag) JSONObject.toBean(object.getJSONObject(Result), Tag.class); + TagModel t = (TagModel) JSONObject.toBean(object.getJSONObject(Result), TagModel.class); assertEquals(tag.getName(), t.getName()); assertNotNull(t.getId()); }); @@ -119,7 +122,7 @@ public class TagControllerTest extends BaseTest { assertEquals(5, pageInfo.getPageSize()); // 内容完整 for (Object tag : pageInfo.getList()) { - Tag t = (Tag) JSONObject.toBean(JSONObject.fromObject(tag), Tag.class); + TagModel t = (TagModel) JSONObject.toBean(JSONObject.fromObject(tag), TagModel.class); assertNotNull(t.getId()); assertNotNull(t.getName()); }