From 34663c01b87436ebabeda95e48b189ea77ac9fe4 Mon Sep 17 00:00:00 2001 From: "kuang.yife" Date: Wed, 13 Dec 2023 15:25:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E6=B3=A8=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/TbUserFollowAppController.java | 81 +++++++++++ .../system/TbUserFollowController.java | 127 ++++++++++++++++++ .../com/ruoyi/system/domain/TbUserFollow.java | 44 ++++++ .../system/mapper/TbUserFollowMapper.java | 62 +++++++++ .../system/service/ITbUserFollowService.java | 62 +++++++++ .../service/impl/TbUserFollowServiceImpl.java | 98 ++++++++++++++ .../mapper/system/TbUserFollowMapper.xml | 79 +++++++++++ 7 files changed, 553 insertions(+) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/TbUserFollowAppController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbUserFollowController.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/TbUserFollow.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbUserFollowMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/ITbUserFollowService.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbUserFollowServiceImpl.java create mode 100644 ruoyi-system/src/main/resources/mapper/system/TbUserFollowMapper.xml diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/TbUserFollowAppController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/TbUserFollowAppController.java new file mode 100644 index 00000000..08b60c80 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/TbUserFollowAppController.java @@ -0,0 +1,81 @@ +package com.ruoyi.web.controller.app; + +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.system.domain.TbUserFollow; +import com.ruoyi.system.service.ITbUserFollowService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + *

用户关注

+ * @author clunt + */ + +@Api(tags = "App*关注列表") +@RestController +@RequestMapping(value = "/app/follow") +public class TbUserFollowAppController { + + @Autowired + private ITbUserFollowService tbUserFollowService; + + + @ResponseBody + @PostMapping("/add") + @ApiOperation(value = "关注用户", httpMethod = "POST") + public Result addSave(@RequestBody TbUserFollow tbUserFollow) + { + // 判断用户是否也关注自己 + TbUserFollow followUser = tbUserFollowService.lambdaQuery() + .eq(TbUserFollow::getFollowUserId, tbUserFollow.getUserId()) + .eq(TbUserFollow::getUserId, tbUserFollow.getFollowUserId()) + .one(); + if(followUser != null){ + followUser.setFollowTogether(1L); + tbUserFollowService.updateById(followUser); + + tbUserFollow.setFollowTogether(1L); + } + // 更新目标用户为已关注自己 + int effectiveRows = tbUserFollowService.insertTbUserFollow(tbUserFollow); + if(effectiveRows > 0){ + return Result.success("关注成功"); + }else { + return Result.error("关注失败!"); + } + } + + @ResponseBody + @PostMapping("/getFollowByUserId") + @ApiOperation(value = "查询我关注的用户", httpMethod = "POST") + public Result> getFollowByUserId(@RequestBody TbUserFollow tbUserFollow) + { + return Result.success(tbUserFollowService.selectTbUserFollowList(tbUserFollow)); + } + + + @ResponseBody + @PostMapping("/getFollowByFollowUserId") + @ApiOperation(value = "查询关注我的用户", httpMethod = "POST") + public Result> getFollowByFollowUserId(@RequestBody TbUserFollow tbUserFollow) + { + return Result.success(tbUserFollowService.selectTbUserFollowList(tbUserFollow)); + } + + + @ResponseBody + @PostMapping("/getTogetherFollowByUserId") + @ApiOperation(value = "查询互相关注的用户", httpMethod = "POST") + public Result> getTogetherFollowByUserId(@RequestBody TbUserFollow tbUserFollow) + { + tbUserFollow.setFollowTogether(1L); + return Result.success(tbUserFollowService.selectTbUserFollowList(tbUserFollow)); + } + + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbUserFollowController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbUserFollowController.java new file mode 100644 index 00000000..0ce17979 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbUserFollowController.java @@ -0,0 +1,127 @@ +package com.ruoyi.web.controller.system; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.system.domain.TbUserFollow; +import com.ruoyi.system.service.ITbUserFollowService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 用户关注列Controller + * + * @author ruoyi + * @date 2023-12-13 + */ +@Controller +@RequestMapping("/system/follow") +public class TbUserFollowController extends BaseController +{ + private String prefix = "system/follow"; + + @Autowired + private ITbUserFollowService tbUserFollowService; + + @RequiresPermissions("system:follow:view") + @GetMapping() + public String follow() + { + return prefix + "/follow"; + } + + /** + * 查询用户关注列列表 + */ + @RequiresPermissions("system:follow:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(TbUserFollow tbUserFollow) + { + startPage(); + List list = tbUserFollowService.selectTbUserFollowList(tbUserFollow); + return getDataTable(list); + } + + /** + * 导出用户关注列列表 + */ + @RequiresPermissions("system:follow:export") + @Log(title = "用户关注列", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public AjaxResult export(TbUserFollow tbUserFollow) + { + List list = tbUserFollowService.selectTbUserFollowList(tbUserFollow); + ExcelUtil util = new ExcelUtil(TbUserFollow.class); + return util.exportExcel(list, "用户关注列数据"); + } + + /** + * 新增用户关注列 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存用户关注列 + */ + @RequiresPermissions("system:follow:add") + @Log(title = "用户关注列", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(TbUserFollow tbUserFollow) + { + return toAjax(tbUserFollowService.insertTbUserFollow(tbUserFollow)); + } + + /** + * 修改用户关注列 + */ + @RequiresPermissions("system:follow:edit") + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Long id, ModelMap mmap) + { + TbUserFollow tbUserFollow = tbUserFollowService.selectTbUserFollowById(id); + mmap.put("tbUserFollow", tbUserFollow); + return prefix + "/edit"; + } + + /** + * 修改保存用户关注列 + */ + @RequiresPermissions("system:follow:edit") + @Log(title = "用户关注列", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(TbUserFollow tbUserFollow) + { + return toAjax(tbUserFollowService.updateTbUserFollow(tbUserFollow)); + } + + /** + * 删除用户关注列 + */ + @RequiresPermissions("system:follow:remove") + @Log(title = "用户关注列", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(tbUserFollowService.deleteTbUserFollowByIds(ids)); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbUserFollow.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbUserFollow.java new file mode 100644 index 00000000..96efd09a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbUserFollow.java @@ -0,0 +1,44 @@ +package com.ruoyi.system.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 用户关注列对象 tb_user_follow + * + * @author ruoyi + * @date 2023-12-13 + */ +@Data +@ApiModel(value = "App*关注用户实体") +@EqualsAndHashCode(callSuper = true) +@TableName(value = "tb_user_follow") +public class TbUserFollow extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private Long id; + + /** 用户id */ + @Excel(name = "用户id") + @ApiModelProperty(value = "当前用户id") + private Long userId; + + /** 关注的用户id */ + @Excel(name = "关注的用户id") + @ApiModelProperty(value = "关注目标用户id") + private Long followUserId; + + /** 互相关注 0.单方关注 1.互相关注 */ + @Excel(name = "互相关注 0.单方关注 1.互相关注") + @ApiModelProperty(value = "互相关注 0.单方关注 1.互相关注,查询使用,关注无需入参") + private Long followTogether; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbUserFollowMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbUserFollowMapper.java new file mode 100644 index 00000000..94ae46e0 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbUserFollowMapper.java @@ -0,0 +1,62 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.TbUserFollow; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 用户关注列Mapper接口 + * + * @author ruoyi + * @date 2023-12-13 + */ +public interface TbUserFollowMapper extends BaseMapper +{ + /** + * 查询用户关注列 + * + * @param id 用户关注列主键 + * @return 用户关注列 + */ + public TbUserFollow selectTbUserFollowById(Long id); + + /** + * 查询用户关注列列表 + * + * @param tbUserFollow 用户关注列 + * @return 用户关注列集合 + */ + public List selectTbUserFollowList(TbUserFollow tbUserFollow); + + /** + * 新增用户关注列 + * + * @param tbUserFollow 用户关注列 + * @return 结果 + */ + public int insertTbUserFollow(TbUserFollow tbUserFollow); + + /** + * 修改用户关注列 + * + * @param tbUserFollow 用户关注列 + * @return 结果 + */ + public int updateTbUserFollow(TbUserFollow tbUserFollow); + + /** + * 删除用户关注列 + * + * @param id 用户关注列主键 + * @return 结果 + */ + public int deleteTbUserFollowById(Long id); + + /** + * 批量删除用户关注列 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTbUserFollowByIds(String[] ids); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ITbUserFollowService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ITbUserFollowService.java new file mode 100644 index 00000000..5d1c528e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ITbUserFollowService.java @@ -0,0 +1,62 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.system.domain.TbUserFollow; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 用户关注列Service接口 + * + * @author ruoyi + * @date 2023-12-13 + */ +public interface ITbUserFollowService extends IService +{ + /** + * 查询用户关注列 + * + * @param id 用户关注列主键 + * @return 用户关注列 + */ + public TbUserFollow selectTbUserFollowById(Long id); + + /** + * 查询用户关注列列表 + * + * @param tbUserFollow 用户关注列 + * @return 用户关注列集合 + */ + public List selectTbUserFollowList(TbUserFollow tbUserFollow); + + /** + * 新增用户关注列 + * + * @param tbUserFollow 用户关注列 + * @return 结果 + */ + public int insertTbUserFollow(TbUserFollow tbUserFollow); + + /** + * 修改用户关注列 + * + * @param tbUserFollow 用户关注列 + * @return 结果 + */ + public int updateTbUserFollow(TbUserFollow tbUserFollow); + + /** + * 批量删除用户关注列 + * + * @param ids 需要删除的用户关注列主键集合 + * @return 结果 + */ + public int deleteTbUserFollowByIds(String ids); + + /** + * 删除用户关注列信息 + * + * @param id 用户关注列主键 + * @return 结果 + */ + public int deleteTbUserFollowById(Long id); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbUserFollowServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbUserFollowServiceImpl.java new file mode 100644 index 00000000..7bb3d2ac --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbUserFollowServiceImpl.java @@ -0,0 +1,98 @@ +package com.ruoyi.system.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.system.mapper.TbUserFollowMapper; +import com.ruoyi.system.domain.TbUserFollow; +import com.ruoyi.system.service.ITbUserFollowService; +import com.ruoyi.common.core.text.Convert; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * 用户关注列Service业务层处理 + * + * @author ruoyi + * @date 2023-12-13 + */ +@Service +public class TbUserFollowServiceImpl extends ServiceImpl implements ITbUserFollowService +{ + @Autowired + private TbUserFollowMapper tbUserFollowMapper; + + /** + * 查询用户关注列 + * + * @param id 用户关注列主键 + * @return 用户关注列 + */ + @Override + public TbUserFollow selectTbUserFollowById(Long id) + { + return tbUserFollowMapper.selectTbUserFollowById(id); + } + + /** + * 查询用户关注列列表 + * + * @param tbUserFollow 用户关注列 + * @return 用户关注列 + */ + @Override + public List selectTbUserFollowList(TbUserFollow tbUserFollow) + { + return tbUserFollowMapper.selectTbUserFollowList(tbUserFollow); + } + + /** + * 新增用户关注列 + * + * @param tbUserFollow 用户关注列 + * @return 结果 + */ + @Override + public int insertTbUserFollow(TbUserFollow tbUserFollow) + { + tbUserFollow.setCreateTime(DateUtils.getNowDate()); + return tbUserFollowMapper.insertTbUserFollow(tbUserFollow); + } + + /** + * 修改用户关注列 + * + * @param tbUserFollow 用户关注列 + * @return 结果 + */ + @Override + public int updateTbUserFollow(TbUserFollow tbUserFollow) + { + tbUserFollow.setUpdateTime(DateUtils.getNowDate()); + return tbUserFollowMapper.updateTbUserFollow(tbUserFollow); + } + + /** + * 批量删除用户关注列 + * + * @param ids 需要删除的用户关注列主键 + * @return 结果 + */ + @Override + public int deleteTbUserFollowByIds(String ids) + { + return tbUserFollowMapper.deleteTbUserFollowByIds(Convert.toStrArray(ids)); + } + + /** + * 删除用户关注列信息 + * + * @param id 用户关注列主键 + * @return 结果 + */ + @Override + public int deleteTbUserFollowById(Long id) + { + return tbUserFollowMapper.deleteTbUserFollowById(id); + } +} diff --git a/ruoyi-system/src/main/resources/mapper/system/TbUserFollowMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TbUserFollowMapper.xml new file mode 100644 index 00000000..12af9bfb --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/TbUserFollowMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + select id, user_id, follow_user_id, follow_together, create_time, update_time, remark from tb_user_follow + + + + + + + + insert into tb_user_follow + + user_id, + follow_user_id, + follow_together, + create_time, + update_time, + remark, + + + #{userId}, + #{followUserId}, + #{followTogether}, + #{createTime}, + #{updateTime}, + #{remark}, + + + + + update tb_user_follow + + user_id = #{userId}, + follow_user_id = #{followUserId}, + follow_together = #{followTogether}, + create_time = #{createTime}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + + delete from tb_user_follow where id = #{id} + + + + delete from tb_user_follow where id in + + #{id} + + + + \ No newline at end of file