Browse Source

新增社区设置管理,1.获取通知权限,2.更新通知权限

fangqing 8 months ago
parent
commit
8193067a06

+ 2 - 13
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunityArticleController.java

@@ -651,18 +651,7 @@ public class CommunityArticleController extends BaseController {
         return AjaxResult.success(collectionArticleVos);
     }
 
-    /**
-     * 获取通知权限
-     *
-     * @param userId 用户ID
-     * @return
-     */
-    @ApiOperation("获取通知权限")
-    @GetMapping("/UserNotification")
-    //@Anonymous
-    public AjaxResult UserNotification(Long userId) {
-        return AjaxResult.success(communityArticleService.selectUserNotification(SecurityUtils.getLoginUser().getUserId()));
-    }
+   
 
 
-}
+}

+ 72 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunitySettingsController.java

@@ -0,0 +1,72 @@
+package com.ruoyi.generator.controller;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.generator.domain.Community.CommunityArticle;
+import com.ruoyi.generator.domain.Community.CommunityUserNotification;
+import com.ruoyi.generator.service.ICommunityArticleService;
+import com.ruoyi.generator.service.ICommunityNotificationService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 社区设置管理
+ *
+ * @author fangQing
+ */
+@Api(tags = "社区设置管理")
+@RestController
+@RequestMapping("/community/settings")
+public class CommunitySettingsController {
+
+
+    @Autowired
+    private ICommunityNotificationService communityNotificationService;
+
+    /**
+     * 获取通知权限
+     * @param
+     * @return 获取通知权限
+     */
+    @ApiOperation("获取通知权限")
+    @GetMapping("/userNotification")
+    //@Anonymous
+    public AjaxResult userNotification() {
+        return AjaxResult.success(communityNotificationService.selectUserNotification(SecurityUtils.getLoginUser().getUserId()));
+    }
+
+    /**
+     * 更新通知权限
+     * @param communityUserNotification
+     * @return 返回修改成功的对象
+     */
+    @ApiOperation("更新通知权限")
+    @PostMapping("/modifyUserNotification")
+    public AjaxResult modifyUserNotification(@RequestBody CommunityUserNotification communityUserNotification) {
+        return AjaxResult.success(communityNotificationService.modifyUserNotification(communityUserNotification));
+    }
+
+
+
+
+
+    /**
+     * 获取隐私权限
+     * @param
+     * @return 获取隐私权限
+     */
+    @ApiOperation("获取通知权限")
+    @GetMapping("/userPrivacy")
+    //@Anonymous
+    public AjaxResult userPrivacy() {
+        return AjaxResult.success(communityNotificationService.selectUserNotification(SecurityUtils.getLoginUser().getUserId()));
+    }
+
+
+
+
+
+
+}

+ 5 - 5
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityUserNotification.java

@@ -36,25 +36,25 @@ public class CommunityUserNotification  implements Serializable  {
      * 赞和收藏
      */
     @ApiModelProperty("赞和收藏")
-    private Boolean is_praise_collection;
+    private Boolean isPraiseCollection;
     /**
      * 新增关注
      */
     @ApiModelProperty("新增关注")
-    private Boolean is_add_attention;
+    private Boolean isAddAttention;
     /**
      * 评论
      */
     @ApiModelProperty("评论")
-    private Boolean is_comment;
+    private Boolean isComment;
     /**
      * @
      */
     @ApiModelProperty("@")
-    private Boolean is_circle;
+    private Boolean isCircle;
     /**
      * 私信
      */
     @ApiModelProperty("私信")
-    private Boolean is_letter;
+    private Boolean isLetter;
 }

+ 15 - 11
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityUserPrivacy.java

@@ -32,45 +32,49 @@ public class CommunityUserPrivacy implements Serializable  {
     @ApiModelProperty("用户id")
     private Long userId;
 
-    /**
-     * 只允许我关注的人评论我
-     */
     @ApiModelProperty("只允许我关注的人评论我")
-    private Boolean is_comment;
+    private Boolean isComment; // 驼峰命名法
+
     /**
      * 只允许我关注的人@我
      */
     @ApiModelProperty("只允许我关注的人@我")
-    private Boolean is_circle;
+    private Boolean isCircle; // 驼峰命名法
+
     /**
      * 我的作品
      */
     @ApiModelProperty("我的作品")
-    private Boolean is_works;
+    private Boolean isWorks; // 驼峰命名法
+
     /**
      * 我的合集
      */
     @ApiModelProperty("我的合集")
-    private Boolean is_collection;
+    private Boolean isCollection; // 驼峰命名法
+
     /**
      * 我的喜欢
      */
     @ApiModelProperty("我的喜欢")
-    private Boolean is_like;
+    private Boolean isLike; // 驼峰命名法
+
     /**
      * 我的收藏
      */
     @ApiModelProperty("我的收藏")
-    private Boolean is_compilation;
+    private Boolean isCompilation; // 驼峰命名法
+
     /**
      * 账户搜索
      */
     @ApiModelProperty("账户搜索")
-    private Boolean is_accounts;
+    private Boolean isAccounts; // 驼峰命名法
+
     /**
      * 名称搜索
      */
     @ApiModelProperty("名称搜索")
-    private Boolean is_names;
+    private Boolean isNames; // 驼峰命名法
 
 }

+ 1 - 40
ruoyi-generator/src/main/java/com/ruoyi/generator/service/CommunityArticleServiceImpl.java

@@ -90,8 +90,6 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
     @Autowired
     private CommunityArticleRecommendMapper recommendMapper;
 
-    @Autowired
-    private CommunityUserNotificationMapper communityUserNotificationMapper;
 
     /**
      * 查询文章列表
@@ -605,44 +603,7 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
         return communityUserLikeVos;
     }
 
-    /**
-     * 获取通知权限
-     * @param userId
-     * @return 获取通知权限
-     */
-    @Override
-    public List<CommunityUserNotificationVo> selectUserNotification(Long userId) {
-        // 查询自己的通知权限
-        List<CommunityUserNotification> communityUserNotifications
-                = communityUserNotificationMapper
-                .selectList(new QueryWrapper<CommunityUserNotification>().eq("user_id", userId));
-
-        // 创建一个用于存放VO的列表
-        List<CommunityUserNotificationVo> communityUserNotificationVos = new ArrayList<>();
-
-        // 遍历查询结果,复制属性到 VO 对象
-        for (CommunityUserNotification communityUserNotification : communityUserNotifications) {
-            CommunityUserNotificationVo communityUserNotificationVo = new CommunityUserNotificationVo();
-            BeanUtils.copyProperties(communityUserNotification, communityUserNotificationVo);
-            communityUserNotificationVos.add(communityUserNotificationVo);
-        }
-
-        // 判断通知权限是否为空
-        if (communityUserNotificationVos.isEmpty()) {
-            // 如果没有通知权限,插入一条关于 userId 的数据
-            CommunityUserNotification newNotification = new CommunityUserNotification();
-            newNotification.setUserId(userId);
-            // 设置其他必要的默认值,例如:
-            // 使用 MyBatis-Plus 执行插入操作
-            communityUserNotificationMapper.insert(newNotification);
-            // 将新插入的记录转换为 VO 并返回
-            CommunityUserNotificationVo newNotificationVo = new CommunityUserNotificationVo();
-            BeanUtils.copyProperties(newNotification, newNotificationVo);
-            communityUserNotificationVos.add(newNotificationVo);
-        }
 
-        return communityUserNotificationVos;
-    }
 
     /**
      * 判断是否是视频文件
@@ -667,4 +628,4 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
             return false;
         }
     }
-}
+}

+ 109 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/service/CommunityNotificationServiceImpl.java

@@ -0,0 +1,109 @@
+package com.ruoyi.generator.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.generator.domain.Community.CommunityUserNotification;
+import com.ruoyi.generator.mapper.community.CommunityUserNotificationMapper;
+import com.ruoyi.generator.vo.CommunityUserNotificationVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 业务 服务层实现
+ *
+ * @author ruoyi
+ */
+@Service
+public class CommunityNotificationServiceImpl extends ServiceImpl<CommunityUserNotificationMapper, CommunityUserNotification> implements ICommunityNotificationService  {
+
+    @Autowired
+    private CommunityUserNotificationMapper communityUserNotificationMapper;
+
+    /**
+     * 获取通知权限
+     * @param userId
+     * @return 获取通知权限
+     */
+    @Override
+    public List<CommunityUserNotificationVo> selectUserNotification(Long userId) {
+        // 查询自己的通知权限
+        List<CommunityUserNotification> communityUserNotifications
+                = communityUserNotificationMapper
+                .selectList(new QueryWrapper<CommunityUserNotification>().eq("user_id", userId));
+        // 创建一个用于存放VO的列表
+        List<CommunityUserNotificationVo> communityUserNotificationVos = new ArrayList<>();
+
+        // 遍历查询结果,复制属性到 VO 对象
+        for (CommunityUserNotification communityUserNotification : communityUserNotifications) {
+            CommunityUserNotificationVo communityUserNotificationVo = new CommunityUserNotificationVo();
+            BeanUtils.copyProperties(communityUserNotification, communityUserNotificationVo);
+            communityUserNotificationVos.add(communityUserNotificationVo);
+        }
+
+        // 判断通知权限是否为空
+        if (communityUserNotificationVos.isEmpty()) {
+            // 如果没有通知权限,插入一条关于 userId 的数据
+            CommunityUserNotification newNotification = new CommunityUserNotification();
+            newNotification.setUserId(userId);
+            // 设置其他必要的默认值,例如:
+            // 使用 MyBatis-Plus 执行插入操作
+            communityUserNotificationMapper.insert(newNotification);
+            // 将新插入的记录转换为 VO 并返回
+            CommunityUserNotificationVo newNotificationVo = new CommunityUserNotificationVo();
+            BeanUtils.copyProperties(newNotification, newNotificationVo);
+            communityUserNotificationVos.add(newNotificationVo);
+        }
+
+        return communityUserNotificationVos;
+    }
+
+
+    /**
+     * 更新通知权限
+     * @param communityUserNotification
+     * @return 返回修改成功的对象
+     */
+    public List<CommunityUserNotificationVo> modifyUserNotification(CommunityUserNotification communityUserNotification) {
+        //获取userId
+        Long userId = SecurityUtils.getUserId();
+        // 创建更新包装器
+        UpdateWrapper<CommunityUserNotification> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("user_id", userId);  // 根据 userId 条件
+        // 更新字段
+        if (communityUserNotification.getIsPraiseCollection() != null) {
+            updateWrapper.set("is_praise_collection", communityUserNotification.getIsPraiseCollection());
+        }
+        if (communityUserNotification.getIsAddAttention() != null) {
+            updateWrapper.set("is_add_attention", communityUserNotification.getIsAddAttention());
+        }
+        if (communityUserNotification.getIsComment() != null) {
+            updateWrapper.set("is_comment", communityUserNotification.getIsComment());
+        }
+        if (communityUserNotification.getIsCircle() != null) {
+            updateWrapper.set("is_circle", communityUserNotification.getIsCircle());
+        }
+        if (communityUserNotification.getIsLetter() != null) {
+            updateWrapper.set("is_letter", communityUserNotification.getIsLetter());
+        }
+        // 执行更新操作
+        boolean updated = this.update(updateWrapper);
+        if (!updated){
+            System.out.println("更新失败");
+        }
+        // 创建一个用于存放VO的列表
+        List<CommunityUserNotificationVo> communityUserNotificationVos = new ArrayList<>();
+        CommunityUserNotification updatedUserNotification = this.getOne(new UpdateWrapper<CommunityUserNotification>().eq("user_id", userId));
+        // 将新插入的记录转换为 VO 并返回
+        CommunityUserNotificationVo newNotificationVo = new CommunityUserNotificationVo();
+        BeanUtils.copyProperties(updatedUserNotification, newNotificationVo);
+        communityUserNotificationVos.add(newNotificationVo);
+
+        return communityUserNotificationVos;
+    }
+}

+ 1 - 6
ruoyi-generator/src/main/java/com/ruoyi/generator/service/ICommunityArticleService.java

@@ -146,11 +146,6 @@ public interface ICommunityArticleService extends IService<CommunityArticle> {
      */
     List<CommunityUserLikeVo> selectMutualAttention(Long userId);
 
-    /**
-     * 获取通知权限
-     * @param userId
-     * @return 获取通知权限
-     */
-    List<CommunityUserNotificationVo> selectUserNotification(Long userId);
+
 
 }

+ 29 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/service/ICommunityNotificationService.java

@@ -0,0 +1,29 @@
+package com.ruoyi.generator.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.generator.domain.Community.CommunityUserNotification;
+import com.ruoyi.generator.vo.CommunityUserNotificationVo;
+
+import java.util.List;
+
+/**
+ * 业务 服务层
+ *
+ * @author ruoyi
+ */
+public interface ICommunityNotificationService extends IService<CommunityUserNotification> {
+
+    /**
+     * 获取通知权限
+     * @param userId
+     * @return 获取通知权限
+     */
+    List<CommunityUserNotificationVo> selectUserNotification(Long userId);
+
+    /**
+     * 更新通知权限
+     * @param communityUserNotification
+     * @return 返回修改成功的对象
+     */
+    List<CommunityUserNotificationVo> modifyUserNotification(CommunityUserNotification communityUserNotification);
+}

+ 5 - 5
ruoyi-generator/src/main/java/com/ruoyi/generator/vo/CommunityUserNotificationVo.java

@@ -36,25 +36,25 @@ public class CommunityUserNotificationVo implements Serializable  {
      * 赞和收藏
      */
     @ApiModelProperty("赞和收藏")
-    private Boolean is_praise_collection;
+    private Boolean isPraiseCollection;
     /**
      * 新增关注
      */
     @ApiModelProperty("新增关注")
-    private Boolean is_add_attention;
+    private Boolean isAddAttention;
     /**
      * 评论
      */
     @ApiModelProperty("评论")
-    private Boolean is_comment;
+    private Boolean isComment;
     /**
      * @
      */
     @ApiModelProperty("@")
-    private Boolean is_circle;
+    private Boolean isCircle;
     /**
      * 私信
      */
     @ApiModelProperty("私信")
-    private Boolean is_letter;
+    private Boolean isLetter;
 }

+ 80 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/vo/CommunityUserPrivacyVo.java

@@ -0,0 +1,80 @@
+package com.ruoyi.generator.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * 用户 隐私设置表 By Qing
+ * @TableName community_user_privacy
+ */
+@Data
+@TableName("community_user_privacy")
+public class CommunityUserPrivacyVo implements Serializable  {
+    /**
+     * 唯一id
+     */
+    @NotNull(message = "[唯一id]不能为空")
+    @ApiModelProperty("唯一id")
+    @TableId(type = IdType.AUTO, value = "id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("只允许我关注的人评论我")
+    private Boolean isComment; // 驼峰命名法
+
+    /**
+     * 只允许我关注的人@我
+     */
+    @ApiModelProperty("只允许我关注的人@我")
+    private Boolean isCircle; // 驼峰命名法
+
+    /**
+     * 我的作品
+     */
+    @ApiModelProperty("我的作品")
+    private Boolean isWorks; // 驼峰命名法
+
+    /**
+     * 我的合集
+     */
+    @ApiModelProperty("我的合集")
+    private Boolean isCollection; // 驼峰命名法
+
+    /**
+     * 我的喜欢
+     */
+    @ApiModelProperty("我的喜欢")
+    private Boolean isLike; // 驼峰命名法
+
+    /**
+     * 我的收藏
+     */
+    @ApiModelProperty("我的收藏")
+    private Boolean isCompilation; // 驼峰命名法
+
+    /**
+     * 账户搜索
+     */
+    @ApiModelProperty("账户搜索")
+    private Boolean isAccounts; // 驼峰命名法
+
+    /**
+     * 名称搜索
+     */
+    @ApiModelProperty("名称搜索")
+    private Boolean isNames; // 驼峰命名法
+
+}