Переглянути джерело

1.新增编辑圈子功能, 圈子增加是否删除标识

fangqing 1 тиждень тому
батько
коміт
ec21ce87db

+ 108 - 3
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunityArticleController.java

@@ -6,6 +6,7 @@ import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.ruoyi.common.annotation.Anonymous;
+import com.ruoyi.common.constant.CacheConstants;
 import com.ruoyi.common.constant.HttpStatus;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -70,6 +71,8 @@ public class CommunityArticleController extends BaseController {
     @Autowired
     private CommunityCircleMapper communityCircleMapper;
 
+    @Autowired
+    private CommunityCircleAssociationMapper communityCircleAssociationMapper;
     @Autowired
     private CommunityClassCircleMapper communityClassCircleMapper;
 
@@ -864,7 +867,10 @@ public class CommunityArticleController extends BaseController {
             if (!circleIds.isEmpty()) {
                 communityCircles = communityCircleMapper.selectList(new QueryWrapper<CommunityCircle>()
                         .in("id", circleIds)
-                        .like("circle_name", circleName));
+                        .like("circle_name", circleName)
+                        .and((wrapper) -> {
+                            wrapper.ne("is_delete", 1).or().isNull("is_delete");
+                        }));
             }
 
             //为空返回空值
@@ -882,7 +888,6 @@ public class CommunityArticleController extends BaseController {
                 communityCircle.setHeat(size);
             }
 
-
         } catch (Exception e) {
             log.info(e.getMessage());
             throw new ProjectException();
@@ -891,6 +896,106 @@ public class CommunityArticleController extends BaseController {
         return AjaxResult.success("获取成功!", communityCircles);
     }
 
+    @ApiOperation("编辑圈子")
+    @PostMapping("/editCircle")
+    @Transactional
+    //@Anonymous
+    public AjaxResult editCircle(@RequestBody CommunityCircleEditVo communityCircleEditVo) {
+        if (Objects.isNull(communityCircleEditVo.getOneId())) {
+            return AjaxResult.error("圈子一级ID不能为空");
+        }
+        if (Objects.isNull(communityCircleEditVo.getType())) {
+            return AjaxResult.error("编辑类型不能为空");
+        }
+
+        //圈子
+        CommunityCircle communityCircle = new CommunityCircle();
+        //关联关系
+        CommunityCircleAssociation communityCircleAssociation = new CommunityCircleAssociation();
+
+        String type = String.valueOf(communityCircleEditVo.getType());
+        try {
+
+            switch (type) {
+                case "1":
+                    //查询圈子
+                    CommunityCircle circle = communityCircleMapper.selectOne(new QueryWrapper<CommunityCircle>()
+                            .eq("circle_name", communityCircleEditVo.getTwoName())
+                            .and((wrapper) -> {
+                                wrapper.ne("is_delete", 1).or().isNull("is_delete");
+                            }));
+                    if (circle != null){
+                        return AjaxResult.success("圈子名称已经存在无法添加");
+                    }
+                    //增加圈子
+                    communityCircle.setCircleName(communityCircleEditVo.getTwoName());
+                    communityCircle.setImageUrl(communityCircleEditVo.getTwoImg());
+                    communityCircle.setCreateBy(SecurityUtils.getLoginUser().getUserId());
+                    communityCircle.setCreateTime(DateUtils.parseDate(DateUtils.getTime()));
+                    communityCircleMapper.insert(communityCircle);
+
+                    //增加圈子的关联关系
+                    communityCircleAssociation.setCircleId(communityCircle.getId());
+                    communityCircleAssociation.setExpandId(communityCircleEditVo.getOneId());
+                    communityCircleAssociation.setCreateBy(SecurityUtils.getLoginUser().getUserId());
+                    communityCircleAssociation.setCreateTime(DateUtils.parseDate(DateUtils.getTime()));
+                    communityCircleAssociationMapper.insert(communityCircleAssociation);
+
+                    return AjaxResult.success("添加成功");
+                case "2":
+                    //查询圈子
+                    CommunityCircle editCircle = communityCircleMapper.selectOne(new QueryWrapper<CommunityCircle>()
+                            .eq("id", communityCircleEditVo.getTwoId())
+                            .and((wrapper) -> {
+                                wrapper.ne("is_delete", 1).or().isNull("is_delete");
+                            }));
+
+                    //编辑圈子
+                    if (!Objects.isNull(communityCircleEditVo.getTwoName())) {
+                        editCircle.setCircleName(communityCircleEditVo.getTwoName());
+                    }
+                    if (!Objects.isNull(communityCircleEditVo.getTwoImg())) {
+                        editCircle.setImageUrl(communityCircleEditVo.getTwoImg());
+                    }
+
+                    editCircle.setUpdateBy(SecurityUtils.getLoginUser().getUserId());
+                    editCircle.setUpdateTime(DateUtils.parseDate(DateUtils.getTime()));
+                    communityCircleMapper.updateById(editCircle);
+
+                    //查询关联关系ID
+                    communityCircleAssociation = communityCircleAssociationMapper.selectOne(new QueryWrapper<CommunityCircleAssociation>()
+                            .eq("circle_id", communityCircleEditVo.getTwoId()));
+
+                    //修改圈子的关联关系
+                    communityCircleAssociation.setExpandId(communityCircleEditVo.getOneId());
+                    communityCircleAssociation.setUpdateBy(SecurityUtils.getLoginUser().getUserId());
+                    communityCircleAssociation.setUpdateTime(DateUtils.parseDate(DateUtils.getTime()));
+                    communityCircleAssociationMapper.updateById(communityCircleAssociation);
+
+                    return AjaxResult.success("编辑成功");
+                case "3":
+                    //删除圈子 关联关系不用删 直接给圈子变更
+                    CommunityCircle deleteCircle = communityCircleMapper.selectOne(new QueryWrapper<CommunityCircle>()
+                            .eq("id", communityCircleEditVo.getTwoId())
+                            .and((wrapper) -> {
+                                wrapper.ne("is_delete", 1).or().isNull("is_delete");
+                            }));
+
+                    deleteCircle.setIsDelete(true);
+                    deleteCircle.setUpdateBy(SecurityUtils.getLoginUser().getUserId());
+                    deleteCircle.setUpdateTime(DateUtils.parseDate(DateUtils.getTime()));
+                    communityCircleMapper.updateById(deleteCircle);
+                    return AjaxResult.success("删除成功");
+                default:
+                    return AjaxResult.error("无效的操作类型");
+            }
+        } catch (Exception e) {
+            log.info(e.getMessage());
+            return AjaxResult.error("操作失败");
+
+        }
+    }
+
 
     @ApiOperation("收藏/取关圈子")
     @PostMapping("/circle")
@@ -1153,7 +1258,7 @@ public class CommunityArticleController extends BaseController {
     @ApiOperation("用户合集")
     @GetMapping("/userCollection")
     @Anonymous
-    public AjaxResult createCollection(Long userId, Long articleId) {
+    public AjaxResult userCollection(Long userId, Long articleId) {
         if (Objects.isNull(userId)) {
             return AjaxResult.error("参数异常!");
         }

+ 6 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityCircle.java

@@ -86,4 +86,10 @@ public class CommunityCircle implements Serializable {
     @TableField(exist = false)
     private Long heat;
 
+    /**
+     * 是否已删除
+     */
+    @ApiModelProperty("是否已删除")
+    private Boolean isDelete;
+
 }

+ 1 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityCircleExpand.java

@@ -17,6 +17,7 @@ import java.util.Date;
  * @author fangqing
  * @date 2024/12/13 17:35
  */
+//圈子的关联关系
 @Data
 @TableName("community_circle_expand")
 public class CommunityCircleExpand {

+ 14 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/community/CommunityCircleAssociationMapper.java

@@ -0,0 +1,14 @@
+package com.ruoyi.generator.mapper.community;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.generator.domain.Community.CommunityCircleAssociation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author fangqing
+ * @date 2025/7/18 10:54
+ */
+@Mapper
+public interface CommunityCircleAssociationMapper extends BaseMapper<CommunityCircleAssociation> {
+}

+ 77 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/vo/CommunityCircleEditVo.java

@@ -0,0 +1,77 @@
+package com.ruoyi.generator.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * @author fangqing
+ * @date 2025/7/18 9:21
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class CommunityCircleEditVo {
+
+    /**
+     * 编辑类型
+     */
+    @ApiModelProperty("type")
+    private Long type;
+
+    /**
+     * 一级Id
+     */
+    @ApiModelProperty("oneId")
+    private Long oneId;
+
+    /**
+     * 二级Id
+     */
+    @ApiModelProperty("oneId")
+    private Long twoId;
+
+    /**
+     * 二级名称
+     */
+    @ApiModelProperty("twoName")
+    private String twoName;
+
+    /**
+     * 二级图片
+     */
+    @ApiModelProperty("twoImg")
+    private String twoImg;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /**
+     * 更新者
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+}

+ 2 - 2
ruoyi-generator/src/main/resources/mapper/community/CommunityClassCircleMapper.xml

@@ -27,12 +27,12 @@
                         LEFT JOIN
                     community_user_circle E ON D.ID = E.circle_id
                 WHERE
-                    (E.is_delete != 1 or E.is_delete is null)
+                    (E.is_delete != 1 or E.is_delete is null) and   (D.is_delete != 1 or D.is_delete is null)
                 GROUP BY
                     D.circle_name
             ) F ON A.circle_name = F.circle_name
         WHERE
-            B.circle_id IS NOT NULL AND B.expand_id = #{id}
+            B.circle_id IS NOT NULL AND B.expand_id = #{id} and   (A.is_delete != 1 or A.is_delete is null)
         ORDER BY
             A.ID ASC;
     </select>