From db5588577b6eadc98bf2a5d86b6803bcf25464bb Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Thu, 8 Sep 2022 18:02:13 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E6=94=B6=E8=97=8F=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mdd/front/controller/ArticleController.java | 6 +++--- .../main/java/com/mdd/front/service/IArticleService.java | 4 ++-- .../java/com/mdd/front/service/impl/ArticleServiceImpl.java | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/server/like-front/src/main/java/com/mdd/front/controller/ArticleController.java b/server/like-front/src/main/java/com/mdd/front/controller/ArticleController.java index 6d429d00..b483149f 100644 --- a/server/like-front/src/main/java/com/mdd/front/controller/ArticleController.java +++ b/server/like-front/src/main/java/com/mdd/front/controller/ArticleController.java @@ -107,10 +107,10 @@ public class ArticleController { */ @PostMapping("/cancelCollect") public Object cancelCollect(@RequestBody Map params) { - Assert.notNull(params.get("id"), "id参数缺失"); - Integer id = Integer.parseInt(params.get("id")); + Assert.notNull(params.get("articleId"), "id参数缺失"); + Integer id = Integer.parseInt(params.get("articleId")); Integer userId = LikeFrontThreadLocal.getUserId(); - iArticleService.cancelCollect(id, userId); + iArticleService.cancelCollect(articleId, userId); return AjaxResult.success(); } diff --git a/server/like-front/src/main/java/com/mdd/front/service/IArticleService.java b/server/like-front/src/main/java/com/mdd/front/service/IArticleService.java index a51ce3e8..ff68b1e3 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/IArticleService.java +++ b/server/like-front/src/main/java/com/mdd/front/service/IArticleService.java @@ -66,9 +66,9 @@ public interface IArticleService { * 取消收藏 * * @author fzr - * @param id 主键 + * @param articleId 主键 * @param userId 用户ID */ - void cancelCollect(Integer id, Integer userId); + void cancelCollect(Integer articleId, Integer userId); } diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/ArticleServiceImpl.java b/server/like-front/src/main/java/com/mdd/front/service/impl/ArticleServiceImpl.java index 5dd6f86e..8523b6cc 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/ArticleServiceImpl.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/ArticleServiceImpl.java @@ -230,14 +230,14 @@ public class ArticleServiceImpl implements IArticleService { * 取消收藏 * * @author fzr - * @param id 主键 + * @param articleId 文章ID * @param userId 用户ID */ @Override - public void cancelCollect(Integer id, Integer userId) { + public void cancelCollect(Integer articleId, Integer userId) { ArticleCollect articleCollect = articleCollectMapper.selectOne( new QueryWrapper() - .eq("id", id) + .eq("article_id", articleId) .eq("user_id", userId) .eq("is_delete", 0) .last("limit 1")); From cc481438df9d3dedb2b11994275880e4b787b953 Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Thu, 8 Sep 2022 18:03:17 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E6=94=B6=E8=97=8F=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/mdd/front/controller/ArticleController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/like-front/src/main/java/com/mdd/front/controller/ArticleController.java b/server/like-front/src/main/java/com/mdd/front/controller/ArticleController.java index b483149f..da7fba89 100644 --- a/server/like-front/src/main/java/com/mdd/front/controller/ArticleController.java +++ b/server/like-front/src/main/java/com/mdd/front/controller/ArticleController.java @@ -108,7 +108,7 @@ public class ArticleController { @PostMapping("/cancelCollect") public Object cancelCollect(@RequestBody Map params) { Assert.notNull(params.get("articleId"), "id参数缺失"); - Integer id = Integer.parseInt(params.get("articleId")); + Integer articleId = Integer.parseInt(params.get("articleId")); Integer userId = LikeFrontThreadLocal.getUserId(); iArticleService.cancelCollect(articleId, userId); return AjaxResult.success(); From 30d46a37fcd383cf69b2f1faa1b2ebe270bfc095 Mon Sep 17 00:00:00 2001 From: linjinyuan <2841541624@qq.com> Date: Thu, 8 Sep 2022 18:20:32 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E3=80=90=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E3=80=91--=20=E6=96=B0=E5=A2=9E=E6=88=91=E7=9A=84=E6=94=B6?= =?UTF-8?q?=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/api/news.ts | 35 ++++++++ app/src/components/news-card/news-card.vue | 8 +- app/src/pages.json | 6 ++ app/src/pages/collection/collection.vue | 50 +++++++++++ app/src/pages/news/component/news-list.vue | 2 +- app/src/pages/news_detail/news_detail.vue | 99 ++++++++++++++++++++-- 6 files changed, 190 insertions(+), 10 deletions(-) create mode 100644 app/src/pages/collection/collection.vue diff --git a/app/src/api/news.ts b/app/src/api/news.ts index e9be6baf..c26c5a86 100644 --- a/app/src/api/news.ts +++ b/app/src/api/news.ts @@ -15,3 +15,38 @@ export function getArticleCate() { export function getArticleList(data: Record) { return request.get({ url: '/article/list', data: data }) } + +/** + * @description 获取文章详情 + * @param { number } id + * @return { Promise } + */ +export function getArticleDetail(data: { id: number }) { + return request.get({ url: '/article/detail', data: data }) +} + +/** + * @description 加入收藏 + * @param { number } articleId + * @return { Promise } + */ +export function addCollect(data: { articleId: number }) { + return request.post({ url: '/article/addCollect', data: data }) +} + +/** + * @description 取消收藏 + * @param { number } id + * @return { Promise } + */ +export function cancelCollect(data: { articleId: number }) { + return request.post({ url: '/article/cancelCollect', data: data }) +} + +/** + * @description 获取收藏列表 + * @return { Promise } + */ +export function getCollect() { + return request.get({ url: '/article/collect' }) +} diff --git a/app/src/components/news-card/news-card.vue b/app/src/components/news-card/news-card.vue index 57189362..66347442 100644 --- a/app/src/components/news-card/news-card.vue +++ b/app/src/components/news-card/news-card.vue @@ -1,5 +1,5 @@ diff --git a/app/src/pages/news_detail/news_detail.vue b/app/src/pages/news_detail/news_detail.vue index 02409e35..417415ab 100644 --- a/app/src/pages/news_detail/news_detail.vue +++ b/app/src/pages/news_detail/news_detail.vue @@ -1,8 +1,95 @@ + + + + {{ newsData.title }} + + 作者: {{ newsData.author }} + {{ newsData.createTime }} + + + {{ newsData.visit }} + + + + + + + + + 摘要: {{ newsData.summary }} + + + + + + + + + + + + + + 收藏 + + + + + - - \ No newline at end of file + + const newsData = ref< any >({}) + let newsId = '' + + + const getData = async (id) => { + newsData.value = await getArticleDetail({ id }) + } + + const handleAddCollect = async (articleId: number) => { + try{ + if( newsData.value.collect ) { + await cancelCollect({ articleId }) + } else await addCollect({ articleId }) + getData(newsId) + }catch(e){ + //TODO handle the exception + } + } + + onLoad((options: any) => { + newsId = options.id + getData(newsId) + }) + + + From b4be4a1e8675577d76742d1df94f9a6994a70980 Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Thu, 8 Sep 2022 18:32:26 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=BC=96=E8=BE=91=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/user/UserController.java | 11 +-- .../mdd/admin/service/user/IUserService.java | 5 +- .../service/user/impl/UserServiceImpl.java | 70 +++++++++++-------- .../admin/validate/user/UserInfoParam.java | 42 ----------- 4 files changed, 51 insertions(+), 77 deletions(-) delete mode 100644 server/like-admin/src/main/java/com/mdd/admin/validate/user/UserInfoParam.java diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/user/UserController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/user/UserController.java index e987224e..7c9a67d7 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/controller/user/UserController.java +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/user/UserController.java @@ -1,8 +1,8 @@ package com.mdd.admin.controller.user; +import com.baomidou.mybatisplus.core.toolkit.Assert; import com.mdd.admin.service.user.IUserService; import com.mdd.admin.validate.common.PageParam; -import com.mdd.admin.validate.user.UserInfoParam; import com.mdd.admin.vo.user.UserVo; import com.mdd.common.core.AjaxResult; import com.mdd.common.core.PageResult; @@ -55,12 +55,15 @@ public class UserController { * 用户编辑 * * @author fzr - * @param userInfoParam 用户参数 + * @param params 参数 * @return Object */ @PostMapping("/edit") - public Object edit(@Validated @RequestBody UserInfoParam userInfoParam) { - iUserService.edit(userInfoParam); + public Object edit(@RequestBody Map params) { + Assert.notNull(params.get("id"), "id参数缺失"); + Assert.notNull(params.get("field"), "field参数缺失"); + Assert.notNull(params.get("value"), "value参数缺失"); + iUserService.edit(params); return AjaxResult.success(); } diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/user/IUserService.java b/server/like-admin/src/main/java/com/mdd/admin/service/user/IUserService.java index bc7072fa..3e6c4bec 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/user/IUserService.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/user/IUserService.java @@ -1,7 +1,6 @@ package com.mdd.admin.service.user; import com.mdd.admin.validate.common.PageParam; -import com.mdd.admin.validate.user.UserInfoParam; import com.mdd.admin.vo.user.UserVo; import com.mdd.common.core.PageResult; @@ -35,8 +34,8 @@ public interface IUserService { * 用户编辑 * * @author fzr - * @param userInfoParam 参数 + * @param params 参数 */ - void edit(UserInfoParam userInfoParam); + void edit(Map params); } diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/user/impl/UserServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/user/impl/UserServiceImpl.java index 0312cb68..dcd17952 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/user/impl/UserServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/user/impl/UserServiceImpl.java @@ -6,8 +6,6 @@ import com.baomidou.mybatisplus.core.toolkit.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mdd.admin.service.user.IUserService; import com.mdd.admin.validate.common.PageParam; -import com.mdd.admin.validate.user.UserInfoParam; -import com.mdd.admin.vo.article.ArticleListVo; import com.mdd.admin.vo.user.UserVo; import com.mdd.common.core.PageResult; import com.mdd.common.entity.user.User; @@ -17,7 +15,6 @@ import com.mdd.common.mapper.user.UserMapper; import com.mdd.common.utils.StringUtil; import com.mdd.common.utils.TimeUtil; import com.mdd.common.utils.UrlUtil; -import org.checkerframework.checker.units.qual.A; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -136,39 +133,56 @@ public class UserServiceImpl implements IUserService { * 用户编辑 * * @author fzr - * @param userInfoParam 参数 + * @param params 参数 */ @Override - public void edit(UserInfoParam userInfoParam) { - User user = userMapper.selectOne(new QueryWrapper() - .eq("id", userInfoParam.getId()) - .eq("is_delete", 0) - .last("limit 1")); + public void edit(Map params) { + Integer id = Integer.parseInt(params.get("id")); + String field = params.get("field").trim(); + String value = params.get("value").trim(); - Assert.notNull(user, "用户不存在!"); + User user = userMapper.selectOne(new QueryWrapper() + .eq("id", id) + .eq("is_delete", 0) + .last("limit 1")); - if (!user.getUsername().equals(userInfoParam.getUsername())) { - User u = userMapper.selectOne(new QueryWrapper() - .eq("username", userInfoParam.getUsername()) - .eq("is_delete", 0) - .last("limit 1")); - System.out.println(u); - if (StringUtil.isNotNull(u) && !u.getId().equals(userInfoParam.getId())) { - throw new OperateException("当前账号已存在!"); + Assert.notNull(user, "用户不存在!"); + + switch (field) { + case "username": + if (!user.getUsername().equals(value)) { + User u = userMapper.selectOne(new QueryWrapper() + .eq("username", value) + .eq("is_delete", 0) + .last("limit 1")); + + if (StringUtil.isNotNull(u) && !u.getId().equals(id)) { + throw new OperateException("当前账号已存在!"); + } } - } - if (!userInfoParam.getMobile().equals("")) { - if(!Pattern.matches("^[1][3,4,5,6,7,8,9][0-9]{9}$", userInfoParam.getMobile())){ - throw new OperateException("手机号格式不正确!"); + user.setUsername(value); + break; + case "realName": + user.setRealName(value); + break; + case "sex": + user.setSex(Integer.parseInt(value)); + break; + case "mobile": + if (!value.equals("")) { + if(!Pattern.matches("^[1][3,4,5,6,7,8,9][0-9]{9}$", value)){ + throw new OperateException("手机号格式不正确!"); + } } - } + user.setMobile(value); + break; + default: + throw new OperateException("不被支持的字段类型!"); + } - user.setUsername(userInfoParam.getUsername()); - user.setRealName(userInfoParam.getRealName()); - user.setSex(userInfoParam.getSex()); - user.setMobile(userInfoParam.getMobile()); - userMapper.updateById(user); + user.setUpdateTime(System.currentTimeMillis() / 1000); + userMapper.updateById(user); } } diff --git a/server/like-admin/src/main/java/com/mdd/admin/validate/user/UserInfoParam.java b/server/like-admin/src/main/java/com/mdd/admin/validate/user/UserInfoParam.java deleted file mode 100644 index d347fe31..00000000 --- a/server/like-admin/src/main/java/com/mdd/admin/validate/user/UserInfoParam.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.mdd.admin.validate.user; - -import com.mdd.common.validator.annotation.IDMust; -import com.mdd.common.validator.annotation.IntegerContains; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; -import org.hibernate.validator.constraints.Length; - -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; -import java.io.Serializable; - -/** - * 用户信息参数 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Accessors(chain = true) -public class UserInfoParam implements Serializable { - - private static final long serialVersionUID = 1L; - - @IDMust(message = "id参数必传且需大于0") - private Integer id; - - @NotNull(message = "username参数缺失") - @NotEmpty(message = "账号不能为空") - private String username; - - @NotNull(message = "realName参数缺失") - @NotEmpty(message = "真实名称不能为空") - private String realName; - - @NotNull(message = "sex参数缺失") - @IntegerContains(values = {0, 1, 2}, message = "请正确选择性别") - private Integer sex; - - private String mobile; - -} From 67c57a5d0868fccb83758c72af2574c0b0011828 Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Thu, 8 Sep 2022 18:34:14 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=BC=96=E8=BE=91=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mdd/admin/service/user/impl/UserServiceImpl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/user/impl/UserServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/user/impl/UserServiceImpl.java index dcd17952..5e9e05a4 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/user/impl/UserServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/user/impl/UserServiceImpl.java @@ -160,7 +160,6 @@ public class UserServiceImpl implements IUserService { throw new OperateException("当前账号已存在!"); } } - user.setUsername(value); break; case "realName":