增加收藏
This commit is contained in:
parent
d31a70d3d8
commit
706a53193f
|
|
@ -8,6 +8,7 @@ import com.mdd.common.entity.user.User;
|
|||
import com.mdd.common.enums.HttpEnum;
|
||||
import com.mdd.common.mapper.user.UserMapper;
|
||||
import com.mdd.common.utils.RedisUtil;
|
||||
import com.mdd.common.utils.StringUtil;
|
||||
import com.mdd.front.config.FrontConfig;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
|
@ -45,13 +46,21 @@ public class LikeFrontInterceptor implements HandlerInterceptor {
|
|||
}
|
||||
|
||||
// 免登录接口
|
||||
String token = request.getHeader("token");
|
||||
List<String> notLoginUri = Arrays.asList(FrontConfig.notLoginUri);
|
||||
if (notLoginUri.contains(request.getRequestURI())) {
|
||||
if (StringUtil.isNotEmpty(token)) {
|
||||
Object uid = RedisUtil.get(token);
|
||||
if (uid != null) {
|
||||
Integer userId = Integer.parseInt(uid.toString());
|
||||
LikeFrontThreadLocal.put("userId", userId);
|
||||
}
|
||||
}
|
||||
return HandlerInterceptor.super.preHandle(request, response, handler);
|
||||
}
|
||||
|
||||
// Token是否为空
|
||||
String token = request.getHeader("token");
|
||||
|
||||
if (StringUtils.isBlank(token)) {
|
||||
AjaxResult result = AjaxResult.failed(HttpEnum.TOKEN_EMPTY.getCode(), HttpEnum.TOKEN_EMPTY.getMsg());
|
||||
response.getWriter().print(JSON.toJSONString(result));
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.mdd.front;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class LikeFrontThreadLocal {
|
||||
|
||||
|
|
@ -31,18 +32,22 @@ public class LikeFrontThreadLocal {
|
|||
* 获取本地线程
|
||||
*/
|
||||
public static Object get(String key) {
|
||||
return MY_LOCAL.get().getOrDefault(key, "");
|
||||
Map<String, Object> map = MY_LOCAL.get();
|
||||
if (map == null) {
|
||||
return null;
|
||||
}
|
||||
return map.getOrDefault(key, "");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户ID
|
||||
*/
|
||||
public static Integer getUserId() {
|
||||
String adminId = LikeFrontThreadLocal.get("userId").toString();
|
||||
if (adminId.equals("")) {
|
||||
Object adminId = LikeFrontThreadLocal.get("userId");
|
||||
if (adminId == null || adminId.toString().equals("")) {
|
||||
return 0;
|
||||
}
|
||||
return Integer.parseInt(adminId);
|
||||
return Integer.parseInt(adminId.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.mdd.front.controller;
|
|||
import com.mdd.common.core.AjaxResult;
|
||||
import com.mdd.common.core.PageResult;
|
||||
import com.mdd.common.validator.annotation.IDMust;
|
||||
import com.mdd.front.LikeFrontThreadLocal;
|
||||
import com.mdd.front.service.IArticleService;
|
||||
import com.mdd.front.validate.PageParam;
|
||||
import com.mdd.front.vo.article.ArticleCateVo;
|
||||
|
|
@ -46,7 +47,8 @@ public class ArticleController {
|
|||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam(value = "cid", defaultValue = "0") Integer cid) {
|
||||
PageResult<ArticleListVo> list = iArticleService.list(pageParam, cid);
|
||||
Integer userId = LikeFrontThreadLocal.getUserId();
|
||||
PageResult<ArticleListVo> list = iArticleService.list(pageParam, cid, userId);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,9 +28,10 @@ public interface IArticleService {
|
|||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @param cid 分类ID
|
||||
* @param userId 用户ID
|
||||
* @return PageResult<ArticleListVo>
|
||||
*/
|
||||
PageResult<ArticleListVo> list(PageParam pageParam, Integer cid);
|
||||
PageResult<ArticleListVo> list(PageParam pageParam, Integer cid, Integer userId);
|
||||
|
||||
/**
|
||||
* 文章详情
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import com.mdd.common.entity.article.Article;
|
|||
import com.mdd.common.entity.article.ArticleCategory;
|
||||
import com.mdd.common.entity.article.ArticleCollect;
|
||||
import com.mdd.common.mapper.article.ArticleCategoryMapper;
|
||||
import com.mdd.common.mapper.article.ArticleCollectMapper;
|
||||
import com.mdd.common.mapper.article.ArticleMapper;
|
||||
import com.mdd.common.utils.TimeUtil;
|
||||
import com.mdd.common.utils.UrlUtil;
|
||||
|
|
@ -20,6 +21,7 @@ import com.mdd.front.vo.article.ArticleCateVo;
|
|||
import com.mdd.front.vo.article.ArticleCollectVo;
|
||||
import com.mdd.front.vo.article.ArticleDetailVo;
|
||||
import com.mdd.front.vo.article.ArticleListVo;
|
||||
import net.sf.jsqlparser.statement.create.table.Index;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
|
@ -40,6 +42,9 @@ public class ArticleServiceImpl implements IArticleService {
|
|||
@Resource
|
||||
ArticleCategoryMapper articleCategoryMapper;
|
||||
|
||||
@Resource
|
||||
ArticleCollectMapper articleCollectMapper;
|
||||
|
||||
/**
|
||||
* 文章分类
|
||||
*
|
||||
|
|
@ -71,10 +76,11 @@ public class ArticleServiceImpl implements IArticleService {
|
|||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @param cid 分类ID
|
||||
* @param userId 用户ID
|
||||
* @return PageResult<ArticleListVo>
|
||||
*/
|
||||
@Override
|
||||
public PageResult<ArticleListVo> list(PageParam pageParam, Integer cid) {
|
||||
public PageResult<ArticleListVo> list(PageParam pageParam, Integer cid, Integer userId) {
|
||||
Integer pageNo = pageParam.getPageNo();
|
||||
Integer pageSize = pageParam.getPageSize();
|
||||
|
||||
|
|
@ -86,13 +92,34 @@ public class ArticleServiceImpl implements IArticleService {
|
|||
|
||||
IPage<Article> iPage = articleMapper.selectPage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||
|
||||
List<Integer> ids = new LinkedList<>();
|
||||
List<ArticleListVo> list = new LinkedList<>();
|
||||
for (Article article : iPage.getRecords()) {
|
||||
ArticleListVo vo = new ArticleListVo();
|
||||
BeanUtils.copyProperties(article, vo);
|
||||
vo.setCollect(false);
|
||||
vo.setImage(UrlUtil.toAbsoluteUrl(article.getImage()));
|
||||
vo.setCreateTime(TimeUtil.timestampToDate(article.getCreateTime()));
|
||||
list.add(vo);
|
||||
|
||||
ids.add(article.getId());
|
||||
}
|
||||
|
||||
if (userId != null && userId > 0 && ids.size() > 0) {
|
||||
List<ArticleCollect> articleCollects = articleCollectMapper.selectList(
|
||||
new QueryWrapper<ArticleCollect>()
|
||||
.eq("user_id", userId)
|
||||
.eq("is_delete", 0)
|
||||
.in("article_id", ids));
|
||||
|
||||
List<Integer> collects = new LinkedList<>();
|
||||
for (ArticleCollect c : articleCollects) {
|
||||
collects.add(c.getArticleId());
|
||||
}
|
||||
|
||||
for (ArticleListVo vo : list) {
|
||||
vo.setCollect(collects.contains(vo.getId()));
|
||||
}
|
||||
}
|
||||
|
||||
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
|
||||
|
|
@ -123,6 +150,13 @@ public class ArticleServiceImpl implements IArticleService {
|
|||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 收藏列表
|
||||
*
|
||||
* @author fzr
|
||||
* @param pageParam 分页参数
|
||||
* @return PageResult<ArticleCollectVo>
|
||||
*/
|
||||
@Override
|
||||
public PageResult<ArticleCollectVo> collect(PageParam pageParam) {
|
||||
Integer pageNo = pageParam.getPageNo();
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ public class ArticleListVo implements Serializable {
|
|||
private String image;
|
||||
private String intro;
|
||||
private Integer visit;
|
||||
private Boolean collect;
|
||||
private String createTime;
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue