分离不同状态的数据 #11
8
build.sh
8
build.sh
@@ -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 "更新结束"
|
||||
@@ -31,9 +31,7 @@ public class RedisConfig extends CachingConfigurerSupport {
|
||||
@Override
|
||||
@Bean
|
||||
public KeyGenerator keyGenerator() {
|
||||
return new KeyGenerator() {
|
||||
@Override
|
||||
public Object generate(Object target, Method method, Object... params) {
|
||||
return (target, method, params) -> {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
String name = target.getClass().getName();
|
||||
sb.append(name.substring(name.lastIndexOf(".") + 1));
|
||||
@@ -43,7 +41,6 @@ public class RedisConfig extends CachingConfigurerSupport {
|
||||
sb.append("-").append(obj.toString());
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,6 @@ public class SessionListener implements HttpSessionListener {
|
||||
|
||||
@Override
|
||||
public void sessionCreated(HttpSessionEvent se) {
|
||||
// TODO : can move 'visit' api to here
|
||||
se.getSession().setAttribute("visitDetail", new HashMap<String, Integer>());
|
||||
// 10s for debug
|
||||
// se.getSession().setMaxInactiveInterval(10);
|
||||
@@ -44,9 +43,7 @@ public class SessionListener implements HttpSessionListener {
|
||||
sb.append("\t登录情况 => ");
|
||||
String email = (String) se.getSession().getAttribute("email");
|
||||
sb.append(email == null ? "游客访问" : email);
|
||||
visitDetail.forEach((s, integer) -> {
|
||||
sb.append("\n").append("Method:[").append(s.split(":")[1]).append("]\tTimes:[").append(integer).append("]\tPath:[").append(s.split(":")[0]).append("]");
|
||||
});
|
||||
visitDetail.forEach((s, integer) -> sb.append("\n").append("Method:[").append(s.split(":")[1]).append("]\tTimes:[").append(integer).append("]\tPath:[").append(s.split(":")[0]).append("]"));
|
||||
log.info(sb.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,7 +120,7 @@ public class ArticleController {
|
||||
@GetMapping("/admin/articles")
|
||||
public Response adminArticles(@RequestParam(name = "page", defaultValue = "1") int page,
|
||||
@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));
|
||||
}
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author : xiaohai
|
||||
@@ -46,21 +46,15 @@ public class LinksController {
|
||||
|
||||
@GetMapping("/links")
|
||||
public Response allForOpen() {
|
||||
List<PartnerSite> sites = new ArrayList<>();
|
||||
for (PartnerSite p : partnerSiteService.findAll()) {
|
||||
if (p.getOpen()) {
|
||||
//隐藏open字段
|
||||
p.setOpen(null);
|
||||
sites.add(p);
|
||||
}
|
||||
}
|
||||
List<PartnerSite> sites = partnerSiteService.findAll().stream().peek(partnerSite -> partnerSite.setOpen(null)).collect(Collectors.toList());
|
||||
return Response.success(sites);
|
||||
}
|
||||
|
||||
@GetMapping("/admin/links")
|
||||
public Response all(@RequestParam("page") int page,
|
||||
@RequestParam("count") int count) {
|
||||
return Response.success(partnerSiteService.partnerSitePages(page, count));
|
||||
@RequestParam("count") int count,
|
||||
@RequestParam(value = "deleted", required = false) Boolean deleted) {
|
||||
return Response.success(partnerSiteService.partnerSitePages(page, count, deleted));
|
||||
}
|
||||
|
||||
@PostMapping("/apply")
|
||||
|
||||
@@ -116,8 +116,8 @@ public class UserController {
|
||||
}
|
||||
|
||||
@GetMapping("/admin/users")
|
||||
public Response getAllUser(@RequestParam("page") int pageNum, @RequestParam("count") int count) {
|
||||
return Response.success(userService.getUserList(pageNum, 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, status));
|
||||
}
|
||||
|
||||
@GetMapping("/emailStatus/{email}")
|
||||
|
||||
@@ -34,6 +34,7 @@ public enum ResponseEnum {
|
||||
PWD_NOT_SAME(3602, "新密码与原密码不相同"),
|
||||
LOGIN_EXPIRED(3700, "登陆过期"),
|
||||
LOGOUT(3710, "账户已注销"),
|
||||
CAN_NOT_USE(3711, "账户不可用"),
|
||||
PWD_WRONG(3800, "密码不正确"),
|
||||
|
||||
JWT_EXPIRED(3810, "Token过期"),
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
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: 小海
|
||||
* @Date: 2020-05-22 21:32
|
||||
@@ -36,4 +42,31 @@ public enum UserAccountStatusEnum {
|
||||
public String getDesc() {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package cn.celess.blog.entity.model;
|
||||
|
||||
import cn.celess.blog.enmu.UserAccountStatusEnum;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -38,5 +39,5 @@ public class UserModel {
|
||||
|
||||
private String token;
|
||||
|
||||
private int status;
|
||||
private UserAccountStatusEnum status;
|
||||
}
|
||||
|
||||
@@ -83,7 +83,12 @@ public class ExceptionHandle {
|
||||
simpleMailMessage.setTo("a@celess.cn");
|
||||
simpleMailMessage.setSubject("服务器出现了错误");
|
||||
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("date:\n").append(DateFormatUtil.getNow()).append("\n\n\n");
|
||||
msg.append("from:\n").append(request.getHeader("User-Agent")).append("\n\n\n");
|
||||
|
||||
@@ -22,6 +22,12 @@ public class MyException extends RuntimeException {
|
||||
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) {
|
||||
super(msg + e.getMsg());
|
||||
this.code = e.getCode();
|
||||
|
||||
@@ -36,5 +36,6 @@ public interface PartnerMapper {
|
||||
|
||||
List<PartnerSite> findAll();
|
||||
|
||||
List<PartnerSite> findAll(Boolean deleted);
|
||||
|
||||
}
|
||||
|
||||
@@ -53,6 +53,8 @@ public interface UserMapper {
|
||||
|
||||
int setUserRole(Long id, String role);
|
||||
|
||||
List<User> findAll(Integer status);
|
||||
|
||||
List<User> findAll();
|
||||
|
||||
int update(User user);
|
||||
|
||||
@@ -52,7 +52,7 @@ public interface ArticleService {
|
||||
* @param page 数据页
|
||||
* @return 分页数据
|
||||
*/
|
||||
PageData<ArticleModel> adminArticles(int count, int page, boolean deleted);
|
||||
PageData<ArticleModel> adminArticles(int count, int page, Boolean deleted);
|
||||
|
||||
/**
|
||||
* 获取文章状态为开放的文章
|
||||
|
||||
@@ -45,7 +45,7 @@ public interface PartnerSiteService {
|
||||
* @param page 数据页
|
||||
* @return 分页数据
|
||||
*/
|
||||
PageData<PartnerSite> partnerSitePages(int page, int count);
|
||||
PageData<PartnerSite> partnerSitePages(int page, int count, Boolean deleted);
|
||||
|
||||
/**
|
||||
* 获取全部数据
|
||||
|
||||
@@ -129,7 +129,7 @@ public interface UserService {
|
||||
* @param page 数据页
|
||||
* @return 分页数据
|
||||
*/
|
||||
PageData<UserModel> getUserList(Integer page, Integer count);
|
||||
PageData<UserModel> getUserList(Integer page, Integer count, Integer status);
|
||||
|
||||
/**
|
||||
* 更改用户信息
|
||||
|
||||
@@ -278,11 +278,16 @@ public class ArticleServiceImpl implements ArticleService {
|
||||
* @return PageInfo
|
||||
*/
|
||||
@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();
|
||||
|
||||
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());
|
||||
List<ArticleModel> articleModels = collect.stream()
|
||||
.peek(article -> article.setMdContent(null))
|
||||
|
||||
@@ -123,9 +123,9 @@ public class PartnerSiteServiceImpl implements PartnerSiteService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageData<PartnerSite> partnerSitePages(int page, int count) {
|
||||
public PageData<PartnerSite> partnerSitePages(int page, int count, Boolean deleted) {
|
||||
PageHelper.startPage(page, count);
|
||||
List<PartnerSite> sitePage = partnerMapper.findAll();
|
||||
List<PartnerSite> sitePage = partnerMapper.findAll(deleted);
|
||||
PageInfo<PartnerSite> pageInfo = new PageInfo<PartnerSite>(sitePage);
|
||||
return new PageData<>(pageInfo, sitePage);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package cn.celess.blog.service.serviceimpl;
|
||||
|
||||
import cn.celess.blog.enmu.ResponseEnum;
|
||||
import cn.celess.blog.enmu.RoleEnum;
|
||||
import cn.celess.blog.enmu.UserAccountStatusEnum;
|
||||
import cn.celess.blog.entity.Response;
|
||||
import cn.celess.blog.entity.User;
|
||||
import cn.celess.blog.entity.model.PageData;
|
||||
@@ -28,6 +29,7 @@ import java.beans.Transient;
|
||||
import java.io.InputStream;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author : xiaohai
|
||||
@@ -98,6 +100,16 @@ public class UserServiceImpl implements UserService {
|
||||
if (!RegexUtil.pwdMatch(loginReq.getPassword())) {
|
||||
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缓存中登录失败次数
|
||||
String s = redisUtil.get(loginReq.getEmail() + "-passwordWrongTime");
|
||||
if (s != null) {
|
||||
@@ -105,14 +117,9 @@ public class UserServiceImpl implements UserService {
|
||||
throw new MyException(ResponseEnum.LOGIN_LATER, loginReq.getEmail());
|
||||
}
|
||||
}
|
||||
User user = null;
|
||||
user = userMapper.findByEmail(loginReq.getEmail());
|
||||
String token = null;
|
||||
|
||||
String token;
|
||||
// 密码比对
|
||||
if (user == null) {
|
||||
// 用户不存在
|
||||
throw new MyException(ResponseEnum.USER_NOT_EXIST);
|
||||
}
|
||||
if (user.getPwd().equals(MD5Util.getMD5(loginReq.getPassword()))) {
|
||||
logger.info("====> {} 进行权限认证 状态:登录成功 <====", loginReq.getEmail());
|
||||
userMapper.updateLoginTime(loginReq.getEmail());
|
||||
@@ -338,12 +345,11 @@ public class UserServiceImpl implements UserService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageData<UserModel> getUserList(Integer page, Integer count) {
|
||||
public PageData<UserModel> getUserList(Integer page, Integer count, Integer status) {
|
||||
PageHelper.startPage(page, count);
|
||||
List<User> all = userMapper.findAll();
|
||||
List<UserModel> modelList = new ArrayList<>();
|
||||
all.forEach(user -> modelList.add(ModalTrans.userFullInfo(user)));
|
||||
return new PageData<UserModel>(PageInfo.of(all), modelList);
|
||||
List<User> all = userMapper.findAll(status);
|
||||
List<UserModel> modelList = all.stream().map(ModalTrans::userFullInfo).collect(Collectors.toList());
|
||||
return new PageData<>(PageInfo.of(all), modelList);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package cn.celess.blog.util;
|
||||
|
||||
import cn.celess.blog.enmu.UserAccountStatusEnum;
|
||||
import cn.celess.blog.entity.*;
|
||||
import cn.celess.blog.entity.model.*;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@@ -46,6 +47,7 @@ public class ModalTrans {
|
||||
}
|
||||
UserModel userModel = new UserModel();
|
||||
BeanUtils.copyProperties(user, userModel);
|
||||
userModel.setStatus(UserAccountStatusEnum.get(user.getStatus()));
|
||||
userModel.setAvatarImgUrl(user.getAvatarImgUrl() == null || user.getAvatarImgUrl().length() == 0 ?
|
||||
null :
|
||||
"http://cdn.celess.cn/" + user.getAvatarImgUrl());
|
||||
|
||||
@@ -78,6 +78,9 @@
|
||||
<select id="findAll" resultMap="partnerSiteResultMap">
|
||||
select *
|
||||
from links
|
||||
<if test="_parameter != null">
|
||||
where is_delete=#{deleted}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
@@ -130,5 +130,8 @@
|
||||
<select id="findAll" resultMap="userResultMap">
|
||||
select *
|
||||
from user
|
||||
<if test="_parameter != null">
|
||||
where status=#{status}
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -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`)
|
||||
VALUES (1, '随笔', 1, 0),
|
||||
(2, '后端', 1, 0),
|
||||
@@ -28,17 +47,6 @@ VALUES (1, '随笔', 1, 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`,
|
||||
`a_reading_number`, `a_like`, `a_dislike`, `a_category_id`, `a_publish_date`, `a_update_date`,
|
||||
`a_is_open`, `is_delete`)
|
||||
@@ -150,7 +158,11 @@ VALUES (1, '程序猿张先生', 1, 'https://zhyocean.cn', '', '', 0),
|
||||
(3, '罗炜杰个人博客', 1, 'http://www.lwjppz.cn', '', '', 0),
|
||||
(4, '强子博客', 1, 'https://www.lqnb.xyz', '', '', 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);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ public class CategoryControllerTest extends BaseTest {
|
||||
CategoryModel category = response.getResult();
|
||||
assertEquals(categoryName, category.getName());
|
||||
assertNotNull(category.getId());
|
||||
assertNotEquals(0, category.getArticles());
|
||||
assertNull(category.getArticles());
|
||||
});
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ public class CategoryControllerTest extends BaseTest {
|
||||
assertEquals(SUCCESS.getCode(), response.getCode());
|
||||
CategoryModel c = response.getResult();
|
||||
assertEquals(name, c.getName());
|
||||
assertNotEquals(0, c.getArticles());
|
||||
assertNull(c.getArticles());
|
||||
assertNotNull(c.getId());
|
||||
});
|
||||
}
|
||||
@@ -70,7 +70,7 @@ public class CategoryControllerTest extends BaseTest {
|
||||
response.getResult().getList().forEach(c -> {
|
||||
assertNotNull(c.getName());
|
||||
assertNotNull(c.getId());
|
||||
assertNotEquals(0, c.getArticles());
|
||||
assertNotNull(c.getArticles());
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
27
src/test/java/cn/celess/blog/service/ArticleServiceTest.java
Normal file
27
src/test/java/cn/celess/blog/service/ArticleServiceTest.java
Normal 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()));
|
||||
}
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
73
src/test/java/cn/celess/blog/service/UserServiceTest.java
Normal file
73
src/test/java/cn/celess/blog/service/UserServiceTest.java
Normal 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());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user