修改响应的Tag的articles字段类型

This commit is contained in:
小海
2020-03-29 14:16:17 +08:00
parent 8181fab48d
commit ebddbc0ecf
5 changed files with 86 additions and 32 deletions

View File

@@ -2,6 +2,7 @@ package cn.celess.blog.controller;
import cn.celess.blog.entity.Response; import cn.celess.blog.entity.Response;
import cn.celess.blog.entity.Tag; import cn.celess.blog.entity.Tag;
import cn.celess.blog.entity.model.TagModel;
import cn.celess.blog.service.TagService; import cn.celess.blog.service.TagService;
import cn.celess.blog.util.ResponseUtil; import cn.celess.blog.util.ResponseUtil;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
@@ -56,12 +57,11 @@ public class TagController {
@GetMapping("/tags/nac") @GetMapping("/tags/nac")
public Response getTagNameAndCount() { public Response getTagNameAndCount() {
List<JSONObject> nameAndCount = new ArrayList<>(); List<JSONObject> nameAndCount = new ArrayList<>();
List<Tag> all = tagService.findAll(); List<TagModel> all = tagService.findAll();
for (Tag t : all) { for (TagModel t : all) {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("name", t.getName()); jsonObject.put("name", t.getName());
String articles = t.getArticles(); jsonObject.put("size", t.getArticles() == null ? 0 : t.getArticles().size());
jsonObject.put("size", articles == null ? 0 : articles.split(",").length);
nameAndCount.add(jsonObject); nameAndCount.add(jsonObject);
} }
return ResponseUtil.success(nameAndCount); return ResponseUtil.success(nameAndCount);

View File

@@ -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<Integer> 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));
}
}
}
}

View File

@@ -1,6 +1,7 @@
package cn.celess.blog.service; package cn.celess.blog.service;
import cn.celess.blog.entity.Tag; import cn.celess.blog.entity.Tag;
import cn.celess.blog.entity.model.TagModel;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -18,7 +19,7 @@ public interface TagService {
* @param name 标签名 * @param name 标签名
* @return 新增后的数据 * @return 新增后的数据
*/ */
Tag create(String name); TagModel create(String name);
/** /**
* 新增数据 * 新增数据
@@ -27,7 +28,7 @@ public interface TagService {
* @return 新增后的数据 * @return 新增后的数据
*/ */
Tag create(Tag tag); TagModel create(Tag tag);
/** /**
* 删除数据 * 删除数据
@@ -44,7 +45,7 @@ public interface TagService {
* @param name 改名的name值 * @param name 改名的name值
* @return 更新后的数据 * @return 更新后的数据
*/ */
Tag update(Long id, String name); TagModel update(Long id, String name);
/** /**
* 查询单个标签信息 * 查询单个标签信息
@@ -52,7 +53,7 @@ public interface TagService {
* @param tagId id * @param tagId id
* @return 标签的数据 * @return 标签的数据
*/ */
Tag retrieveOneById(long tagId); TagModel retrieveOneById(long tagId);
/** /**
* 通过name查询标签的信息 * 通过name查询标签的信息
@@ -60,7 +61,7 @@ public interface TagService {
* @param name tag的名称 * @param name tag的名称
* @return 标签数据 * @return 标签数据
*/ */
Tag retrieveOneByName(String name); TagModel retrieveOneByName(String name);
/** /**
@@ -70,13 +71,13 @@ public interface TagService {
* @param page 数据页 * @param page 数据页
* @return 分页数据 * @return 分页数据
*/ */
PageInfo<Tag> retrievePage(int page, int count); PageInfo<TagModel> retrievePage(int page, int count);
/** /**
* 获取全部标签数据 * 获取全部标签数据
* *
* @return 标签数据列表 * @return 标签数据列表
*/ */
List<Tag> findAll(); List<TagModel> findAll();
} }

View File

@@ -3,6 +3,7 @@ package cn.celess.blog.service.serviceimpl;
import cn.celess.blog.enmu.ResponseEnum; import cn.celess.blog.enmu.ResponseEnum;
import cn.celess.blog.entity.Article; import cn.celess.blog.entity.Article;
import cn.celess.blog.entity.Tag; import cn.celess.blog.entity.Tag;
import cn.celess.blog.entity.model.TagModel;
import cn.celess.blog.exception.MyException; import cn.celess.blog.exception.MyException;
import cn.celess.blog.mapper.ArticleMapper; import cn.celess.blog.mapper.ArticleMapper;
import cn.celess.blog.mapper.TagMapper; import cn.celess.blog.mapper.TagMapper;
@@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@@ -29,7 +31,7 @@ public class TagServiceImpl implements TagService {
ArticleMapper articleMapper; ArticleMapper articleMapper;
@Override @Override
public Tag create(String name) { public TagModel create(String name) {
boolean b = tagMapper.existsByName(name); boolean b = tagMapper.existsByName(name);
if (b) { if (b) {
throw new MyException(ResponseEnum.TAG_HAS_EXIST); throw new MyException(ResponseEnum.TAG_HAS_EXIST);
@@ -37,16 +39,16 @@ public class TagServiceImpl implements TagService {
Tag tag = new Tag(); Tag tag = new Tag();
tag.setName(name); tag.setName(name);
tagMapper.insert(tag); tagMapper.insert(tag);
return tag; return new TagModel(tag);
} }
@Override @Override
public Tag create(Tag tag) { public TagModel create(Tag tag) {
if (tag == null) { if (tag == null) {
throw new MyException(ResponseEnum.PARAMETERS_ERROR); throw new MyException(ResponseEnum.PARAMETERS_ERROR);
} }
tagMapper.insert(tag); tagMapper.insert(tag);
return tag; return new TagModel(tag);
} }
@Override @Override
@@ -60,6 +62,7 @@ public class TagServiceImpl implements TagService {
} }
String[] articleArray = tag.getArticles().split(","); String[] articleArray = tag.getArticles().split(",");
for (int i = 0; i < articleArray.length; i++) { for (int i = 0; i < articleArray.length; i++) {
// FIXME :: bug
if (articleArray[i] == null || "".equals(articleArray)) { if (articleArray[i] == null || "".equals(articleArray)) {
continue; continue;
} }
@@ -76,7 +79,7 @@ public class TagServiceImpl implements TagService {
@Override @Override
public Tag update(Long id,String name) { public TagModel update(Long id, String name) {
if (id == null) { if (id == null) {
throw new MyException(ResponseEnum.PARAMETERS_ERROR.getCode(), "缺少ID"); throw new MyException(ResponseEnum.PARAMETERS_ERROR.getCode(), "缺少ID");
} }
@@ -84,37 +87,43 @@ public class TagServiceImpl implements TagService {
tagFromDB.setName(name); tagFromDB.setName(name);
tagMapper.update(tagFromDB); tagMapper.update(tagFromDB);
return tagFromDB; return new TagModel(tagFromDB);
} }
@Override @Override
public Tag retrieveOneById(long tagId) { public TagModel retrieveOneById(long tagId) {
Tag tag = tagMapper.findTagById(tagId); Tag tag = tagMapper.findTagById(tagId);
if (tag == null) { if (tag == null) {
throw new MyException(ResponseEnum.TAG_NOT_EXIST); throw new MyException(ResponseEnum.TAG_NOT_EXIST);
} }
return tag; return new TagModel(tag);
} }
@Override @Override
public Tag retrieveOneByName(String name) { public TagModel retrieveOneByName(String name) {
Tag tag = tagMapper.findTagByName(name); Tag tag = tagMapper.findTagByName(name);
if (tag == null) { if (tag == null) {
throw new MyException(ResponseEnum.TAG_NOT_EXIST); throw new MyException(ResponseEnum.TAG_NOT_EXIST);
} }
return tag; return new TagModel(tag);
} }
@Override @Override
public PageInfo<Tag> retrievePage(int page, int count) { public PageInfo<TagModel> retrievePage(int page, int count) {
PageHelper.startPage(page, count); PageHelper.startPage(page, count);
PageInfo pageInfo = new PageInfo(tagMapper.findAll()); List<Tag> tagList = tagMapper.findAll();
PageInfo pageInfo = new PageInfo(tagList);
List<TagModel> list = new ArrayList<>();
tagList.forEach(e -> list.add(new TagModel(e)));
pageInfo.setList(list);
return pageInfo; return pageInfo;
} }
@Override @Override
public List<Tag> findAll() { public List<TagModel> findAll() {
return tagMapper.findAll(); List<TagModel> list = new ArrayList<>();
tagMapper.findAll().forEach(e -> list.add(new TagModel(e)));
return list;
} }
} }

View File

@@ -2,6 +2,7 @@ package cn.celess.blog.controller;
import cn.celess.blog.BaseTest; import cn.celess.blog.BaseTest;
import cn.celess.blog.entity.Tag; import cn.celess.blog.entity.Tag;
import cn.celess.blog.entity.model.TagModel;
import cn.celess.blog.mapper.TagMapper; import cn.celess.blog.mapper.TagMapper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
@@ -29,7 +30,7 @@ public class TagControllerTest extends BaseTest {
JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString());
assertEquals(SUCCESS.getCode(), object.getInt(Code)); assertEquals(SUCCESS.getCode(), object.getInt(Code));
JSONObject resJson = object.getJSONObject(Result); JSONObject resJson = object.getJSONObject(Result);
Tag tag = (Tag) JSONObject.toBean(resJson, Tag.class); TagModel tag = (TagModel) JSONObject.toBean(resJson, TagModel.class);
assertNotNull(tag.getId()); assertNotNull(tag.getId());
assertEquals(name, tag.getName()); assertEquals(name, tag.getName());
}); });
@@ -63,9 +64,11 @@ public class TagControllerTest extends BaseTest {
JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString());
assertEquals(SUCCESS.getCode(), object.getInt(Code)); assertEquals(SUCCESS.getCode(), object.getInt(Code));
assertNotNull(object.getJSONObject(Result)); 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(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()); assertEquals(tag.getId(), t.getId());
}); });
@@ -79,7 +82,7 @@ public class TagControllerTest extends BaseTest {
JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString());
assertEquals(SUCCESS.getCode(), object.getInt(Code)); assertEquals(SUCCESS.getCode(), object.getInt(Code));
assertNotNull(object.getJSONObject(Result)); 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()); assertEquals(tag.getId(), t.getId());
assertNotNull(t.getName()); assertNotNull(t.getName());
}); });
@@ -93,7 +96,7 @@ public class TagControllerTest extends BaseTest {
JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString());
assertEquals(SUCCESS.getCode(), object.getInt(Code)); assertEquals(SUCCESS.getCode(), object.getInt(Code));
assertNotNull(object.getJSONObject(Result)); 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()); assertEquals(tag.getName(), t.getName());
assertNotNull(t.getId()); assertNotNull(t.getId());
}); });
@@ -119,7 +122,7 @@ public class TagControllerTest extends BaseTest {
assertEquals(5, pageInfo.getPageSize()); assertEquals(5, pageInfo.getPageSize());
// 内容完整 // 内容完整
for (Object tag : pageInfo.getList()) { 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.getId());
assertNotNull(t.getName()); assertNotNull(t.getName());
} }