Merge pull request #11 from xiaohai2271/dev

分离不同状态的数据
This commit is contained in:
禾几海
2020-08-31 13:01:09 +08:00
committed by GitHub
29 changed files with 303 additions and 75 deletions

View File

@@ -1,8 +0,0 @@
#!/bin/sh
echo "查询已存在进程"
pgrep -af blog-0.0.1-SNAPSHOT.jar
echo "结束已存在进程"
pkill -f blog-0.0.1-SNAPSHOT.jar
echo "开始运行小海博客"
nohup java -jar -Dfile.encoding=UTF-8 blog-0.0.1-SNAPSHOT.jar >blog.log &
echo "更新结束"

View File

@@ -31,9 +31,7 @@ public class RedisConfig extends CachingConfigurerSupport {
@Override @Override
@Bean @Bean
public KeyGenerator keyGenerator() { public KeyGenerator keyGenerator() {
return new KeyGenerator() { return (target, method, params) -> {
@Override
public Object generate(Object target, Method method, Object... params) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
String name = target.getClass().getName(); String name = target.getClass().getName();
sb.append(name.substring(name.lastIndexOf(".") + 1)); sb.append(name.substring(name.lastIndexOf(".") + 1));
@@ -43,7 +41,6 @@ public class RedisConfig extends CachingConfigurerSupport {
sb.append("-").append(obj.toString()); sb.append("-").append(obj.toString());
} }
return sb.toString(); return sb.toString();
}
}; };
} }

View File

@@ -25,7 +25,6 @@ public class SessionListener implements HttpSessionListener {
@Override @Override
public void sessionCreated(HttpSessionEvent se) { public void sessionCreated(HttpSessionEvent se) {
// TODO : can move 'visit' api to here
se.getSession().setAttribute("visitDetail", new HashMap<String, Integer>()); se.getSession().setAttribute("visitDetail", new HashMap<String, Integer>());
// 10s for debug // 10s for debug
// se.getSession().setMaxInactiveInterval(10); // se.getSession().setMaxInactiveInterval(10);
@@ -44,9 +43,7 @@ public class SessionListener implements HttpSessionListener {
sb.append("\t登录情况 => "); sb.append("\t登录情况 => ");
String email = (String) se.getSession().getAttribute("email"); String email = (String) se.getSession().getAttribute("email");
sb.append(email == null ? "游客访问" : email); sb.append(email == null ? "游客访问" : email);
visitDetail.forEach((s, integer) -> { visitDetail.forEach((s, integer) -> sb.append("\n").append("Method:[").append(s.split(":")[1]).append("]\tTimes:[").append(integer).append("]\tPath:[").append(s.split(":")[0]).append("]"));
sb.append("\n").append("Method:[").append(s.split(":")[1]).append("]\tTimes:[").append(integer).append("]\tPath:[").append(s.split(":")[0]).append("]");
});
log.info(sb.toString()); log.info(sb.toString());
} }
} }

View File

@@ -120,7 +120,7 @@ public class ArticleController {
@GetMapping("/admin/articles") @GetMapping("/admin/articles")
public Response adminArticles(@RequestParam(name = "page", defaultValue = "1") int page, public Response adminArticles(@RequestParam(name = "page", defaultValue = "1") int page,
@RequestParam(name = "count", defaultValue = "10") int count, @RequestParam(name = "count", defaultValue = "10") int count,
@RequestParam(name = "deleted", defaultValue = "false") boolean deleted) { @RequestParam(name = "deleted", required = false) Boolean deleted) {
return Response.success(articleService.adminArticles(count, page, deleted)); return Response.success(articleService.adminArticles(count, page, deleted));
} }

View File

@@ -11,8 +11,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @author : xiaohai * @author : xiaohai
@@ -46,21 +46,15 @@ public class LinksController {
@GetMapping("/links") @GetMapping("/links")
public Response allForOpen() { public Response allForOpen() {
List<PartnerSite> sites = new ArrayList<>(); List<PartnerSite> sites = partnerSiteService.findAll().stream().peek(partnerSite -> partnerSite.setOpen(null)).collect(Collectors.toList());
for (PartnerSite p : partnerSiteService.findAll()) {
if (p.getOpen()) {
//隐藏open字段
p.setOpen(null);
sites.add(p);
}
}
return Response.success(sites); return Response.success(sites);
} }
@GetMapping("/admin/links") @GetMapping("/admin/links")
public Response all(@RequestParam("page") int page, public Response all(@RequestParam("page") int page,
@RequestParam("count") int count) { @RequestParam("count") int count,
return Response.success(partnerSiteService.partnerSitePages(page, count)); @RequestParam(value = "deleted", required = false) Boolean deleted) {
return Response.success(partnerSiteService.partnerSitePages(page, count, deleted));
} }
@PostMapping("/apply") @PostMapping("/apply")

View File

@@ -116,8 +116,8 @@ public class UserController {
} }
@GetMapping("/admin/users") @GetMapping("/admin/users")
public Response getAllUser(@RequestParam("page") int pageNum, @RequestParam("count") int count) { public Response getAllUser(@RequestParam("page") int pageNum, @RequestParam("count") int count, @RequestParam(name = "status", required = false) Integer status) {
return Response.success(userService.getUserList(pageNum, count)); return Response.success(userService.getUserList(pageNum, count, status));
} }
@GetMapping("/emailStatus/{email}") @GetMapping("/emailStatus/{email}")

View File

@@ -34,6 +34,7 @@ public enum ResponseEnum {
PWD_NOT_SAME(3602, "新密码与原密码不相同"), PWD_NOT_SAME(3602, "新密码与原密码不相同"),
LOGIN_EXPIRED(3700, "登陆过期"), LOGIN_EXPIRED(3700, "登陆过期"),
LOGOUT(3710, "账户已注销"), LOGOUT(3710, "账户已注销"),
CAN_NOT_USE(3711, "账户不可用"),
PWD_WRONG(3800, "密码不正确"), PWD_WRONG(3800, "密码不正确"),
JWT_EXPIRED(3810, "Token过期"), JWT_EXPIRED(3810, "Token过期"),

View File

@@ -1,5 +1,11 @@
package cn.celess.blog.enmu; package cn.celess.blog.enmu;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.HashMap;
import java.util.Map;
/** /**
* @Author: 小海 * @Author: 小海
* @Date: 2020-05-22 21:32 * @Date: 2020-05-22 21:32
@@ -36,4 +42,31 @@ public enum UserAccountStatusEnum {
public String getDesc() { public String getDesc() {
return desc; return desc;
} }
public static UserAccountStatusEnum get(int code) {
for (UserAccountStatusEnum value : UserAccountStatusEnum.values()) {
if (value.code == code) {
return value;
}
}
return null;
}
@JsonCreator
public static UserAccountStatusEnum get(Map<String, Object> map) {
for (UserAccountStatusEnum value : UserAccountStatusEnum.values()) {
if (value.code == (int) map.get("code") && value.desc.equals(map.get("desc"))) {
return value;
}
}
return null;
}
@JsonValue
public Map<String, Object> toJson() {
Map<String, Object> map = new HashMap<>(2);
map.put("code", code);
map.put("desc", desc);
return map;
}
} }

View File

@@ -1,5 +1,6 @@
package cn.celess.blog.entity.model; package cn.celess.blog.entity.model;
import cn.celess.blog.enmu.UserAccountStatusEnum;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -38,5 +39,5 @@ public class UserModel {
private String token; private String token;
private int status; private UserAccountStatusEnum status;
} }

View File

@@ -83,7 +83,12 @@ public class ExceptionHandle {
simpleMailMessage.setTo("a@celess.cn"); simpleMailMessage.setTo("a@celess.cn");
simpleMailMessage.setSubject("服务器出现了错误"); simpleMailMessage.setSubject("服务器出现了错误");
StringBuilder msg = new StringBuilder(); StringBuilder msg = new StringBuilder();
msg.append("requirePath:\n").append(request.getRequestURL().toString()).append("?").append(request.getQueryString()).append("\n\n\n"); String queryString = request.getQueryString();
msg.append("requirePath:\n").append(request.getRequestURL().toString());
if (queryString != null) {
msg.append("?").append(queryString);
}
msg.append("\n\n\n");
msg.append("msg:\n").append(e.getMessage()).append("\n\n\n"); msg.append("msg:\n").append(e.getMessage()).append("\n\n\n");
msg.append("date:\n").append(DateFormatUtil.getNow()).append("\n\n\n"); msg.append("date:\n").append(DateFormatUtil.getNow()).append("\n\n\n");
msg.append("from:\n").append(request.getHeader("User-Agent")).append("\n\n\n"); msg.append("from:\n").append(request.getHeader("User-Agent")).append("\n\n\n");

View File

@@ -22,6 +22,12 @@ public class MyException extends RuntimeException {
this.code = e.getCode(); this.code = e.getCode();
} }
public MyException(ResponseEnum e, Object result) {
super(e.getMsg());
this.code = e.getCode();
this.result = result;
}
public MyException(ResponseEnum e, String msg) { public MyException(ResponseEnum e, String msg) {
super(msg + e.getMsg()); super(msg + e.getMsg());
this.code = e.getCode(); this.code = e.getCode();

View File

@@ -36,5 +36,6 @@ public interface PartnerMapper {
List<PartnerSite> findAll(); List<PartnerSite> findAll();
List<PartnerSite> findAll(Boolean deleted);
} }

View File

@@ -53,6 +53,8 @@ public interface UserMapper {
int setUserRole(Long id, String role); int setUserRole(Long id, String role);
List<User> findAll(Integer status);
List<User> findAll(); List<User> findAll();
int update(User user); int update(User user);

View File

@@ -52,7 +52,7 @@ public interface ArticleService {
* @param page 数据页 * @param page 数据页
* @return 分页数据 * @return 分页数据
*/ */
PageData<ArticleModel> adminArticles(int count, int page, boolean deleted); PageData<ArticleModel> adminArticles(int count, int page, Boolean deleted);
/** /**
* 获取文章状态为开放的文章 * 获取文章状态为开放的文章

View File

@@ -45,7 +45,7 @@ public interface PartnerSiteService {
* @param page 数据页 * @param page 数据页
* @return 分页数据 * @return 分页数据
*/ */
PageData<PartnerSite> partnerSitePages(int page, int count); PageData<PartnerSite> partnerSitePages(int page, int count, Boolean deleted);
/** /**
* 获取全部数据 * 获取全部数据

View File

@@ -129,7 +129,7 @@ public interface UserService {
* @param page 数据页 * @param page 数据页
* @return 分页数据 * @return 分页数据
*/ */
PageData<UserModel> getUserList(Integer page, Integer count); PageData<UserModel> getUserList(Integer page, Integer count, Integer status);
/** /**
* 更改用户信息 * 更改用户信息

View File

@@ -278,11 +278,16 @@ public class ArticleServiceImpl implements ArticleService {
* @return PageInfo * @return PageInfo
*/ */
@Override @Override
public PageData<ArticleModel> adminArticles(int count, int page, boolean deleted) { public PageData<ArticleModel> adminArticles(int count, int page, Boolean deleted) {
List<Article> articleList = articleMapper.findAll(); List<Article> articleList = articleMapper.findAll();
PageData<ArticleModel> pageData = new PageData<>(null, 0, count, page); PageData<ArticleModel> pageData = new PageData<>(null, 0, count, page);
List<Article> collect = articleList.stream().filter(article -> article.isDeleted() == deleted).collect(Collectors.toList()); List<Article> collect;
if (deleted != null) {
collect = articleList.stream().filter(article -> article.isDeleted() == deleted).collect(Collectors.toList());
} else {
collect = articleList;
}
pageData.setTotal(collect.size()); pageData.setTotal(collect.size());
List<ArticleModel> articleModels = collect.stream() List<ArticleModel> articleModels = collect.stream()
.peek(article -> article.setMdContent(null)) .peek(article -> article.setMdContent(null))

View File

@@ -123,9 +123,9 @@ public class PartnerSiteServiceImpl implements PartnerSiteService {
} }
@Override @Override
public PageData<PartnerSite> partnerSitePages(int page, int count) { public PageData<PartnerSite> partnerSitePages(int page, int count, Boolean deleted) {
PageHelper.startPage(page, count); PageHelper.startPage(page, count);
List<PartnerSite> sitePage = partnerMapper.findAll(); List<PartnerSite> sitePage = partnerMapper.findAll(deleted);
PageInfo<PartnerSite> pageInfo = new PageInfo<PartnerSite>(sitePage); PageInfo<PartnerSite> pageInfo = new PageInfo<PartnerSite>(sitePage);
return new PageData<>(pageInfo, sitePage); return new PageData<>(pageInfo, sitePage);
} }

View File

@@ -2,6 +2,7 @@ package cn.celess.blog.service.serviceimpl;
import cn.celess.blog.enmu.ResponseEnum; import cn.celess.blog.enmu.ResponseEnum;
import cn.celess.blog.enmu.RoleEnum; import cn.celess.blog.enmu.RoleEnum;
import cn.celess.blog.enmu.UserAccountStatusEnum;
import cn.celess.blog.entity.Response; import cn.celess.blog.entity.Response;
import cn.celess.blog.entity.User; import cn.celess.blog.entity.User;
import cn.celess.blog.entity.model.PageData; import cn.celess.blog.entity.model.PageData;
@@ -28,6 +29,7 @@ import java.beans.Transient;
import java.io.InputStream; import java.io.InputStream;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/** /**
* @author : xiaohai * @author : xiaohai
@@ -98,6 +100,16 @@ public class UserServiceImpl implements UserService {
if (!RegexUtil.pwdMatch(loginReq.getPassword())) { if (!RegexUtil.pwdMatch(loginReq.getPassword())) {
throw new MyException(ResponseEnum.PARAMETERS_PWD_ERROR); throw new MyException(ResponseEnum.PARAMETERS_PWD_ERROR);
} }
User user = userMapper.findByEmail(loginReq.getEmail());
if (user == null) {
// 用户不存在
throw new MyException(ResponseEnum.USER_NOT_EXIST);
}
if (user.getStatus() != UserAccountStatusEnum.NORMAL.getCode()) {
throw new MyException(ResponseEnum.CAN_NOT_USE, UserAccountStatusEnum.get(user.getStatus()));
}
//获取redis缓存中登录失败次数 //获取redis缓存中登录失败次数
String s = redisUtil.get(loginReq.getEmail() + "-passwordWrongTime"); String s = redisUtil.get(loginReq.getEmail() + "-passwordWrongTime");
if (s != null) { if (s != null) {
@@ -105,14 +117,9 @@ public class UserServiceImpl implements UserService {
throw new MyException(ResponseEnum.LOGIN_LATER, loginReq.getEmail()); throw new MyException(ResponseEnum.LOGIN_LATER, loginReq.getEmail());
} }
} }
User user = null;
user = userMapper.findByEmail(loginReq.getEmail()); String token;
String token = null;
// 密码比对 // 密码比对
if (user == null) {
// 用户不存在
throw new MyException(ResponseEnum.USER_NOT_EXIST);
}
if (user.getPwd().equals(MD5Util.getMD5(loginReq.getPassword()))) { if (user.getPwd().equals(MD5Util.getMD5(loginReq.getPassword()))) {
logger.info("====> {} 进行权限认证 状态:登录成功 <====", loginReq.getEmail()); logger.info("====> {} 进行权限认证 状态:登录成功 <====", loginReq.getEmail());
userMapper.updateLoginTime(loginReq.getEmail()); userMapper.updateLoginTime(loginReq.getEmail());
@@ -338,12 +345,11 @@ public class UserServiceImpl implements UserService {
} }
@Override @Override
public PageData<UserModel> getUserList(Integer page, Integer count) { public PageData<UserModel> getUserList(Integer page, Integer count, Integer status) {
PageHelper.startPage(page, count); PageHelper.startPage(page, count);
List<User> all = userMapper.findAll(); List<User> all = userMapper.findAll(status);
List<UserModel> modelList = new ArrayList<>(); List<UserModel> modelList = all.stream().map(ModalTrans::userFullInfo).collect(Collectors.toList());
all.forEach(user -> modelList.add(ModalTrans.userFullInfo(user))); return new PageData<>(PageInfo.of(all), modelList);
return new PageData<UserModel>(PageInfo.of(all), modelList);
} }
@Override @Override

View File

@@ -1,5 +1,6 @@
package cn.celess.blog.util; package cn.celess.blog.util;
import cn.celess.blog.enmu.UserAccountStatusEnum;
import cn.celess.blog.entity.*; import cn.celess.blog.entity.*;
import cn.celess.blog.entity.model.*; import cn.celess.blog.entity.model.*;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@@ -46,6 +47,7 @@ public class ModalTrans {
} }
UserModel userModel = new UserModel(); UserModel userModel = new UserModel();
BeanUtils.copyProperties(user, userModel); BeanUtils.copyProperties(user, userModel);
userModel.setStatus(UserAccountStatusEnum.get(user.getStatus()));
userModel.setAvatarImgUrl(user.getAvatarImgUrl() == null || user.getAvatarImgUrl().length() == 0 ? userModel.setAvatarImgUrl(user.getAvatarImgUrl() == null || user.getAvatarImgUrl().length() == 0 ?
null : null :
"http://cdn.celess.cn/" + user.getAvatarImgUrl()); "http://cdn.celess.cn/" + user.getAvatarImgUrl());

View File

@@ -78,6 +78,9 @@
<select id="findAll" resultMap="partnerSiteResultMap"> <select id="findAll" resultMap="partnerSiteResultMap">
select * select *
from links from links
<if test="_parameter != null">
where is_delete=#{deleted}
</if>
</select> </select>

View File

@@ -130,5 +130,8 @@
<select id="findAll" resultMap="userResultMap"> <select id="findAll" resultMap="userResultMap">
select * select *
from user from user
<if test="_parameter != null">
where status=#{status}
</if>
</select> </select>
</mapper> </mapper>

View File

@@ -1,3 +1,22 @@
INSERT INTO `user` (`u_id`, `u_email`, `u_pwd`, `u_email_status`, `u_avatar`, `u_desc`, `u_recently_landed_time`,
`u_display_name`, `u_role`, `status`)
VALUES (1, 'a@celess.cn', '25f9e794323b453885f5181f1b624d0b', 1, 'a@celess.cn_2.png', '禾几海不需要自我介绍',
'2020-07-02 11:30:38', '禾几海', 'admin', 0),
(3, 'zh56462271@qq.com', '25f9e794323b453885f5181f1b624d0b', 1, NULL, NULL, '2020-05-16 13:21:35', NULL, 'user',
0),
(2, 'b@celess.cn', '25f9e794323b453885f5181f1b624d0b', 1, NULL, NULL, '2020-05-16 13:21:35', NULL, 'user', 0),
(4, 'c@celess.cn', '25f9e794323b453885f5181f1b624d0b', 1, NULL, NULL, '2020-05-16 13:21:35', NULL, 'user', 1),
(5, 'd@celess.cn', '25f9e794323b453885f5181f1b624d0b', 1, NULL, NULL, '2020-05-16 13:21:35', NULL, 'user', 1),
(6, 'e@celess.cn', '25f9e794323b453885f5181f1b624d0b', 1, NULL, NULL, '2020-05-16 13:21:35', NULL, 'user', 2),
(7, 'f@celess.cn', '25f9e794323b453885f5181f1b624d0b', 1, NULL, NULL, '2020-05-16 13:21:35', NULL, 'user', 2),
(8, 'g@celess.cn', '25f9e794323b453885f5181f1b624d0b', 1, NULL, NULL, '2020-05-16 13:21:35', NULL, 'user', 0),
(9, 'h@celess.cn', '25f9e794323b453885f5181f1b624d0b', 1, NULL, NULL, '2020-05-16 13:21:35', NULL, 'user', 1),
(10, 'i@celess.cn', '25f9e794323b453885f5181f1b624d0b', 1, NULL, NULL, '2020-05-16 13:21:35', NULL, 'user', 2),
(11, 'j@celess.cn', '25f9e794323b453885f5181f1b624d0b', 1, NULL, NULL, '2020-05-16 13:21:35', NULL, 'user', 0),
(12, 'k@celess.cn', '25f9e794323b453885f5181f1b624d0b', 1, NULL, NULL, '2020-05-16 13:21:35', NULL, 'user', 1);
-- 密码123456789
INSERT INTO `tag_category` (`t_id`, `t_name`, `is_category`, `is_delete`) INSERT INTO `tag_category` (`t_id`, `t_name`, `is_category`, `is_delete`)
VALUES (1, '随笔', 1, 0), VALUES (1, '随笔', 1, 0),
(2, '后端', 1, 0), (2, '后端', 1, 0),
@@ -28,17 +47,6 @@ VALUES (1, '随笔', 1, 0),
(27, '网课', 0, 0); (27, '网课', 0, 0);
-- 密码123456789
INSERT INTO `user` (`u_id`, `u_email`, `u_pwd`, `u_email_status`, `u_avatar`, `u_desc`, `u_recently_landed_time`,
`u_display_name`, `u_role`, `status`)
VALUES (1, 'a@celess.cn', '25f9e794323b453885f5181f1b624d0b', 1, 'a@celess.cn_2.png', '禾几海不需要自我介绍',
'2020-07-02 11:30:38', '禾几海', 'admin', 0),
(2, 'b@celess.cn', '25f9e794323b453885f5181f1b624d0b', 1, NULL, NULL, '2020-05-16 13:21:35', NULL, 'user',
0),
(3, 'zh56462271@qq.com', '25f9e794323b453885f5181f1b624d0b', 1, NULL, NULL, '2020-05-16 13:21:35', NULL, 'user',
0);
INSERT INTO `article` (`a_id`, `a_title`, `a_summary`, `a_md_content`, `a_url`, `a_author_id`, `a_is_original`, INSERT INTO `article` (`a_id`, `a_title`, `a_summary`, `a_md_content`, `a_url`, `a_author_id`, `a_is_original`,
`a_reading_number`, `a_like`, `a_dislike`, `a_category_id`, `a_publish_date`, `a_update_date`, `a_reading_number`, `a_like`, `a_dislike`, `a_category_id`, `a_publish_date`, `a_update_date`,
`a_is_open`, `is_delete`) `a_is_open`, `is_delete`)
@@ -150,7 +158,11 @@ VALUES (1, '程序猿张先生', 1, 'https://zhyocean.cn', '', '', 0),
(3, '罗炜杰个人博客', 1, 'http://www.lwjppz.cn', '', '', 0), (3, '罗炜杰个人博客', 1, 'http://www.lwjppz.cn', '', '', 0),
(4, '强子博客', 1, 'https://www.lqnb.xyz', '', '', 0), (4, '强子博客', 1, 'https://www.lqnb.xyz', '', '', 0),
(5, '原创博客技术联盟', 1, 'http://techblog.pub/', '', '', 0), (5, '原创博客技术联盟', 1, 'http://techblog.pub/', '', '', 0),
(6, 'WarlockMT', 1, 'https://www.warlock.live/', '', '', 0); (6, 'WarlockMT', 1, 'https://www.warlock.live/', '', '', 0),
(7, '测试例1', 1, 'https://t1.celess.cn/', '', '', 1),
(8, '测试例2', 1, 'https://t2.celess.cn/', '', '', 1),
(9, '测试例3', 1, 'https://t3.celess.cn/', '', '', 1),
(10, '测试例4', 1, 'https://t4.celess.cn/', '', '', 1);

View File

@@ -32,7 +32,7 @@ public class CategoryControllerTest extends BaseTest {
CategoryModel category = response.getResult(); CategoryModel category = response.getResult();
assertEquals(categoryName, category.getName()); assertEquals(categoryName, category.getName());
assertNotNull(category.getId()); assertNotNull(category.getId());
assertNotEquals(0, category.getArticles()); assertNull(category.getArticles());
}); });
} }
@@ -56,7 +56,7 @@ public class CategoryControllerTest extends BaseTest {
assertEquals(SUCCESS.getCode(), response.getCode()); assertEquals(SUCCESS.getCode(), response.getCode());
CategoryModel c = response.getResult(); CategoryModel c = response.getResult();
assertEquals(name, c.getName()); assertEquals(name, c.getName());
assertNotEquals(0, c.getArticles()); assertNull(c.getArticles());
assertNotNull(c.getId()); assertNotNull(c.getId());
}); });
} }
@@ -70,7 +70,7 @@ public class CategoryControllerTest extends BaseTest {
response.getResult().getList().forEach(c -> { response.getResult().getList().forEach(c -> {
assertNotNull(c.getName()); assertNotNull(c.getName());
assertNotNull(c.getId()); assertNotNull(c.getId());
assertNotEquals(0, c.getArticles()); assertNotNull(c.getArticles());
}); });
}); });

View File

@@ -0,0 +1,36 @@
package cn.celess.blog.enmu;
import cn.celess.blog.BaseTest;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Test;
import java.io.IOException;
import static org.junit.Assert.*;
public class UserAccountStatusEnumTest extends BaseTest {
@Test
public void get() {
assertEquals(UserAccountStatusEnum.NORMAL, UserAccountStatusEnum.get(0));
assertEquals(UserAccountStatusEnum.LOCKED, UserAccountStatusEnum.get(1));
assertEquals(UserAccountStatusEnum.DELETED, UserAccountStatusEnum.get(2));
}
@Test
public void toJson() throws JsonProcessingException {
// 序列化
ObjectMapper objectMapper = new ObjectMapper();
assertEquals("{\"code\":0,\"desc\":\"正常\"}", objectMapper.writeValueAsString(UserAccountStatusEnum.NORMAL));
}
@Test
public void testGet() throws IOException {
// 反序列化
ObjectMapper mapper = new ObjectMapper();
UserAccountStatusEnum userAccountStatusEnum = mapper.readValue(mapper.writeValueAsString(UserAccountStatusEnum.NORMAL), UserAccountStatusEnum.class);
assertEquals(UserAccountStatusEnum.NORMAL.getCode(), userAccountStatusEnum.getCode());
assertEquals(UserAccountStatusEnum.NORMAL.getDesc(), userAccountStatusEnum.getDesc());
}
}

View File

@@ -0,0 +1,27 @@
package cn.celess.blog.service;
import cn.celess.blog.BaseTest;
import cn.celess.blog.entity.model.ArticleModel;
import cn.celess.blog.entity.model.PageData;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import static org.junit.Assert.*;
public class ArticleServiceTest extends BaseTest {
@Autowired
ArticleService articleService;
@Test
public void adminArticles() {
// 测deleted参数传值
PageData<ArticleModel> pageData = articleService.adminArticles(10, 1, true);
assertTrue(pageData.getList().stream().allMatch(ArticleModel::isDeleted));
pageData = articleService.adminArticles(10, 1, false);
assertFalse(pageData.getList().stream().allMatch(ArticleModel::isDeleted));
pageData = articleService.adminArticles(10, 1, null);
assertTrue(pageData.getList().stream().anyMatch(ArticleModel::isDeleted));
assertTrue(pageData.getList().stream().anyMatch(articleModel -> !articleModel.isDeleted()));
}
}

View File

@@ -0,0 +1,32 @@
package cn.celess.blog.service;
import cn.celess.blog.BaseTest;
import cn.celess.blog.entity.PartnerSite;
import cn.celess.blog.entity.model.PageData;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import java.util.stream.Stream;
import static org.junit.Assert.*;
public class PartnerSiteServiceTest extends BaseTest {
@Autowired
PartnerSiteService partnerSiteService;
@Test
public void partnerSitePages() {
// 测试deleted 参数
PageData<PartnerSite> pageData = partnerSiteService.partnerSitePages(1, 10, true);
assertTrue(pageData.getList().stream().allMatch(PartnerSite::getDelete));
pageData = partnerSiteService.partnerSitePages(1, 10, false);
assertTrue(pageData.getList().stream().noneMatch(PartnerSite::getDelete));
pageData = partnerSiteService.partnerSitePages(1, 10, null);
List<PartnerSite> list = pageData.getList();
assertNotEquals(0, list.stream().filter(PartnerSite::getDelete).count());
assertNotEquals(0, list.stream().filter(partnerSite -> !partnerSite.getDelete()).count());
}
}

View File

@@ -0,0 +1,73 @@
package cn.celess.blog.service;
import cn.celess.blog.BaseTest;
import cn.celess.blog.enmu.ResponseEnum;
import cn.celess.blog.enmu.UserAccountStatusEnum;
import cn.celess.blog.entity.User;
import cn.celess.blog.entity.model.PageData;
import cn.celess.blog.entity.model.UserModel;
import cn.celess.blog.entity.request.LoginReq;
import cn.celess.blog.exception.MyException;
import cn.celess.blog.mapper.UserMapper;
import cn.celess.blog.util.MD5Util;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import static org.junit.Assert.*;
public class UserServiceTest extends BaseTest {
@Autowired
UserService userService;
@Autowired
UserMapper userMapper;
@Test
public void getUserList() {
// 测试status 参数
PageData<UserModel> userList = userService.getUserList(1, 10, UserAccountStatusEnum.NORMAL.getCode());
assertTrue(userList.getList().stream().allMatch(userModel -> userModel.getStatus().getCode() == UserAccountStatusEnum.NORMAL.getCode()));
userList = userService.getUserList(1, 10, UserAccountStatusEnum.LOCKED.getCode());
assertTrue(userList.getList().stream().allMatch(userModel -> userModel.getStatus().getCode() == UserAccountStatusEnum.LOCKED.getCode()));
userList = userService.getUserList(1, 10, UserAccountStatusEnum.DELETED.getCode());
assertTrue(userList.getList().stream().allMatch(userModel -> userModel.getStatus().getCode() == UserAccountStatusEnum.DELETED.getCode()));
userList = userService.getUserList(1, 10, null);
assertTrue(userList.getList().stream().anyMatch(userModel -> userModel.getStatus().getCode() == UserAccountStatusEnum.NORMAL.getCode()));
assertTrue(userList.getList().stream().anyMatch(userModel -> userModel.getStatus().getCode() == UserAccountStatusEnum.LOCKED.getCode()));
assertTrue(userList.getList().stream().anyMatch(userModel -> userModel.getStatus().getCode() == UserAccountStatusEnum.DELETED.getCode()));
}
@Test
public void testLogin() {
// 测试账户 被锁 被删除 登录
String email = randomStr(5) + "@celess.cn";
String pwd = MD5Util.getMD5("123456789");
User user = new User(email, pwd);
userMapper.addUser(user);
assertNotNull(user.getId());
user = userMapper.findByEmail(email);
LoginReq loginReq = new LoginReq(email, "123456789", false);
UserModel login = userService.login(loginReq);
assertEquals(UserAccountStatusEnum.NORMAL, login.getStatus());
userMapper.lock(user.getId());
try {
userService.login(loginReq);
fail("测试登录被锁账户 失败!");
} catch (MyException e) {
assertEquals(ResponseEnum.CAN_NOT_USE.getCode(), e.getCode());
assertEquals(UserAccountStatusEnum.LOCKED, e.getResult());
}
userMapper.delete(user.getId());
try {
userService.login(loginReq);
fail("测试登录被删除账户 失败!");
} catch (MyException e) {
assertEquals(ResponseEnum.CAN_NOT_USE.getCode(), e.getCode());
assertEquals(UserAccountStatusEnum.DELETED, e.getResult());
}
}
}