diff --git a/server/like-admin/src/main/resources/application-dev.yml b/server/like-admin/src/main/resources/application-dev.yml index ae6fed3..5691f39 100644 --- a/server/like-admin/src/main/resources/application-dev.yml +++ b/server/like-admin/src/main/resources/application-dev.yml @@ -13,8 +13,8 @@ spring: password: 4e14b5378637d9c7 # 数据库密码 # Redis配置 redis: - host: 139.224.213.131 # Redis服务地址 - port: 7001 # Redis端口 + host: 101.133.172.2 # Redis服务地址 + port: 2007 # Redis端口 password: 123456 # Redis密码 database: 4 # 数据库索引 diff --git a/server/like-common/src/main/java/com/mdd/common/entity/AppDongtai.java b/server/like-common/src/main/java/com/mdd/common/entity/AppDongtai.java index 93e7638..d099c6f 100644 --- a/server/like-common/src/main/java/com/mdd/common/entity/AppDongtai.java +++ b/server/like-common/src/main/java/com/mdd/common/entity/AppDongtai.java @@ -51,4 +51,7 @@ public class AppDongtai implements Serializable { @ApiModelProperty(value = "引用内容id") private Integer refId; + + @ApiModelProperty(value = "发布用户") + private Integer userId; } \ No newline at end of file diff --git a/server/like-front/src/main/java/com/mdd/front/controller/AppDongtaiController.java b/server/like-front/src/main/java/com/mdd/front/controller/AppDongtaiController.java index 04c9ed3..a7b2266 100644 --- a/server/like-front/src/main/java/com/mdd/front/controller/AppDongtaiController.java +++ b/server/like-front/src/main/java/com/mdd/front/controller/AppDongtaiController.java @@ -52,13 +52,13 @@ public class AppDongtaiController { return AjaxResult.success(); } - @Log(title = "动态编辑") - @PostMapping("/edit") - @ApiOperation(value="动态编辑") - public AjaxResult edit(@Validated @RequestBody AppDongtaiUpdateValidate updateValidate) { - iAppDongtaiService.edit(updateValidate); - return AjaxResult.success(); - } +// @Log(title = "动态编辑") +// @PostMapping("/edit") +// @ApiOperation(value="动态编辑") +// public AjaxResult edit(@Validated @RequestBody AppDongtaiUpdateValidate updateValidate) { +// iAppDongtaiService.edit(updateValidate); +// return AjaxResult.success(); +// } @Log(title = "动态删除") @PostMapping("/del") diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/AppDongtaiServiceImpl.java b/server/like-front/src/main/java/com/mdd/front/service/impl/AppDongtaiServiceImpl.java index 0eae044..b0b70c2 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/AppDongtaiServiceImpl.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/AppDongtaiServiceImpl.java @@ -5,11 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.yulichang.query.MPJQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mdd.common.entity.AppFriend; import com.mdd.common.entity.AppUser; import com.mdd.common.entity.dttag.AppTag; +import com.mdd.common.mapper.AppFriendMapper; import com.mdd.common.mapper.AppUserMapper; import com.mdd.common.mapper.dttag.AppTagMapper; import com.mdd.common.util.StringUtils; +import com.mdd.front.LikeFrontThreadLocal; import com.mdd.front.validate.common.PageValidate; import com.mdd.front.service.IAppDongtaiService; import com.mdd.front.validate.AppDongtaiCreateValidate; @@ -24,12 +27,16 @@ import com.mdd.common.mapper.AppDongtaiMapper; import com.mdd.common.util.ListUtils; import com.mdd.common.util.TimeUtils; import com.mdd.common.util.UrlUtils; +import com.mdd.front.vo.AppTagVo; +import com.mdd.front.vo.AppUserListedVo; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.Assert; import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; /** * 动态实现类 @@ -49,6 +56,9 @@ public class AppDongtaiServiceImpl implements IAppDongtaiService { @Resource AppUserMapper appUserMapper; + @Resource + AppFriendMapper appFriendMapper; + /** * 动态列表 * @@ -65,6 +75,20 @@ public class AppDongtaiServiceImpl implements IAppDongtaiService { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.orderByDesc("id"); + //查所有的好友 + List friends = new ArrayList<>(); + QueryWrapper friendWrapper = new QueryWrapper<>(); + if (searchValidate.getUserId() != null) { + friendWrapper.eq("user_id", searchValidate.getUserId()); + friends = appFriendMapper.selectList(friendWrapper); + } + List collect = friends.stream().map(item -> item.getFriendId()).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(collect)){ + return PageResult.pageHelper(new ArrayList<>()); + } + else { + queryWrapper.in("user_id", collect); + } appDongtaiMapper.setSearch(queryWrapper, searchValidate, new String[]{ "=:content:str", "=:img:str", @@ -77,11 +101,66 @@ public class AppDongtaiServiceImpl implements IAppDongtaiService { }); IPage iPage = appDongtaiMapper.selectPage(new Page<>(page, limit), queryWrapper); - + List userList = new LinkedList<>(); + List tagList = new LinkedList<>(); List list = new LinkedList<>(); for (AppDongtai item : iPage.getRecords()) { AppDongtaiListedVo vo = new AppDongtaiListedVo(); BeanUtils.copyProperties(item, vo); + // 处理提及用户,多个和单个 + if (StringUtils.isNoneBlank(item.getRefUser())) { + if (item.getRefUser().contains(",")) { + List userIds = ListUtils.stringToListAsInt(item.getTagId(), ","); + userIds.forEach(id -> { + List appUsers = appUserMapper.selectList(new LambdaQueryWrapper().eq(AppUser::getId, id)); + Assert.notEmpty(appUsers, "用户不存在"); + boolean b = userList.addAll(appUsers.stream().map(user -> { + AppUserListedVo appUserListedVo = new AppUserListedVo(); + BeanUtils.copyProperties(user, appUserListedVo); + appUserListedVo.setCreateTime(TimeUtils.timestampToDate(user.getCreateTime())); + appUserListedVo.setUpdateTime(TimeUtils.timestampToDate(user.getUpdateTime())); + return appUserListedVo; + }).collect(Collectors.toList())); + Assert.isTrue(b, "用户不存在"); + }); + } else { + AppUser appUsers = appUserMapper.selectById(Integer.parseInt(item.getRefUser())); + Assert.notNull(appUsers, "用户不存在"); + AppUserListedVo appUserListedVo = new AppUserListedVo(); + BeanUtils.copyProperties(appUsers, appUserListedVo); + appUserListedVo.setCreateTime(TimeUtils.timestampToDate(appUsers.getCreateTime())); + appUserListedVo.setUpdateTime(TimeUtils.timestampToDate(appUsers.getUpdateTime())); + userList.add(appUserListedVo); + } + vo.setUserInfos(userList); + } + + if (StringUtils.isNoneBlank(item.getTagId())) { + if (item.getTagId().contains(",")) { + List tagIds = ListUtils.stringToListAsInt(item.getTagId(), ","); + tagIds.forEach(id -> { + List tags = appTagMapper.selectList(new LambdaQueryWrapper().eq(AppTag::getId, id)); + Assert.notEmpty(tags, "用户不存在"); + boolean b = tagList.addAll(tags.stream().map(tag -> { + AppTagVo appTagVo = new AppTagVo(); + BeanUtils.copyProperties(tag, appTagVo); + appTagVo.setCreateTime(TimeUtils.timestampToDate(tag.getCreateTime())); + appTagVo.setUpdateTime(TimeUtils.timestampToDate(tag.getUpdateTime())); + return appTagVo; + }).collect(Collectors.toList())); + Assert.isTrue(b, "标签不存在"); + }); + } else { + AppTag appTags = appTagMapper.selectById(Integer.parseInt(item.getTagId())); + Assert.notNull(appTags, "标签不存在"); + AppTagVo appTagVo = new AppTagVo(); + BeanUtils.copyProperties(appTags, appTagVo); + appTagVo.setCreateTime(TimeUtils.timestampToDate(appTags.getCreateTime())); + appTagVo.setUpdateTime(TimeUtils.timestampToDate(appTags.getUpdateTime())); + tagList.add(appTagVo); + } + vo.setAppTags(tagList); + } vo.setImg(UrlUtils.toAbsoluteUrl(item.getImg())); vo.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime())); vo.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime())); @@ -125,7 +204,7 @@ public class AppDongtaiServiceImpl implements IAppDongtaiService { Assert.isNull(null, "引用id不能为空"); } - if (StringUtils.isNotEmpty(createValidate.getTagId()) && createValidate.getTagId().contains(",")) { + if (StringUtils.isNoneBlank(createValidate.getTagId()) && createValidate.getTagId().contains(",")) { List tags = ListUtils.stringToListAsInt(createValidate.getTagId(), ","); tags.forEach(id -> { AppTag tag = appTagMapper.selectById(id); @@ -138,18 +217,20 @@ public class AppDongtaiServiceImpl implements IAppDongtaiService { .last("limit 1")); Assert.notNull(tag, "标签不存在"); } - if (StringUtils.isNotEmpty(createValidate.getRefUser()) && createValidate.getRefUser().contains(",")) { - List users = ListUtils.stringToListAsInt(createValidate.getTagId(), ","); - users.forEach(id -> { - AppUser appUser = appUserMapper.selectById(id); + if (StringUtils.isNoneBlank(createValidate.getRefUser())) { + if (createValidate.getRefUser().contains(",")) { + List users = ListUtils.stringToListAsInt(createValidate.getTagId(), ","); + users.forEach(id -> { + AppUser appUser = appUserMapper.selectById(id); + Assert.notNull(appUser, "用户不存在"); + }); + } else { + AppUser appUser = appUserMapper.selectOne( + new QueryWrapper() + .eq("id", createValidate.getRefUser()) + .last("limit 1")); Assert.notNull(appUser, "用户不存在"); - }); - } else { - AppUser appUser = appUserMapper.selectOne( - new QueryWrapper() - .eq("id", createValidate.getRefUser()) - .last("limit 1")); - Assert.notNull(appUser, "用户不存在"); + } } AppDongtai model = new AppDongtai(); model.setCreateTime(System.currentTimeMillis() / 1000); diff --git a/server/like-front/src/main/java/com/mdd/front/validate/AppDongtaiCreateValidate.java b/server/like-front/src/main/java/com/mdd/front/validate/AppDongtaiCreateValidate.java index 50f34b9..c63c030 100644 --- a/server/like-front/src/main/java/com/mdd/front/validate/AppDongtaiCreateValidate.java +++ b/server/like-front/src/main/java/com/mdd/front/validate/AppDongtaiCreateValidate.java @@ -37,4 +37,7 @@ public class AppDongtaiCreateValidate implements Serializable { @ApiModelProperty(value = "引用内容id") private Integer refId; + + @ApiModelProperty(value = "发布用户") + private Integer userId; } diff --git a/server/like-front/src/main/java/com/mdd/front/validate/AppDongtaiSearchValidate.java b/server/like-front/src/main/java/com/mdd/front/validate/AppDongtaiSearchValidate.java index 324d08b..875ab5e 100644 --- a/server/like-front/src/main/java/com/mdd/front/validate/AppDongtaiSearchValidate.java +++ b/server/like-front/src/main/java/com/mdd/front/validate/AppDongtaiSearchValidate.java @@ -35,4 +35,7 @@ public class AppDongtaiSearchValidate implements Serializable { @ApiModelProperty(value = "引用内容id") private Integer refId; + + @ApiModelProperty(value = "发布用户") + private Integer userId; } diff --git a/server/like-front/src/main/java/com/mdd/front/validate/AppDongtaiUpdateValidate.java b/server/like-front/src/main/java/com/mdd/front/validate/AppDongtaiUpdateValidate.java index bab5b03..a446a7e 100644 --- a/server/like-front/src/main/java/com/mdd/front/validate/AppDongtaiUpdateValidate.java +++ b/server/like-front/src/main/java/com/mdd/front/validate/AppDongtaiUpdateValidate.java @@ -53,4 +53,7 @@ public class AppDongtaiUpdateValidate implements Serializable { @ApiModelProperty(value = "引用内容id") private Integer refId; + @ApiModelProperty(value = "发布用户") + private Integer userId; + } diff --git a/server/like-front/src/main/java/com/mdd/front/validate/login/RegisterValidate.java b/server/like-front/src/main/java/com/mdd/front/validate/login/RegisterValidate.java index f49604d..6575567 100644 --- a/server/like-front/src/main/java/com/mdd/front/validate/login/RegisterValidate.java +++ b/server/like-front/src/main/java/com/mdd/front/validate/login/RegisterValidate.java @@ -20,19 +20,15 @@ public class RegisterValidate implements Serializable { @NotBlank(message = "用户名不能为空") @ApiModelProperty(value = "用户名", required = true) private String username; - @NotBlank(message = "头像不能为空") @ApiModelProperty(value = "头像", required = true) private String avatar; - @NotBlank(message = "手机号不能为空") @ApiModelProperty(value = "手机号", required = true) private String mobile; - @NotNull(message = "性别不能为空") @ApiModelProperty(value = "性别1男2女", required = true) private Integer sex; - @ApiModelProperty(value = "地址") private String address; diff --git a/server/like-front/src/main/java/com/mdd/front/vo/AppDongtaiDetailVo.java b/server/like-front/src/main/java/com/mdd/front/vo/AppDongtaiDetailVo.java index bc1c6fc..9e7bf3b 100644 --- a/server/like-front/src/main/java/com/mdd/front/vo/AppDongtaiDetailVo.java +++ b/server/like-front/src/main/java/com/mdd/front/vo/AppDongtaiDetailVo.java @@ -39,5 +39,8 @@ public class AppDongtaiDetailVo implements Serializable { @ApiModelProperty(value = "引用内容id") private Integer refId; + @ApiModelProperty(value = "发布用户") + private Integer userId; + } diff --git a/server/like-front/src/main/java/com/mdd/front/vo/AppDongtaiListedVo.java b/server/like-front/src/main/java/com/mdd/front/vo/AppDongtaiListedVo.java index 3372a05..fa66ac3 100644 --- a/server/like-front/src/main/java/com/mdd/front/vo/AppDongtaiListedVo.java +++ b/server/like-front/src/main/java/com/mdd/front/vo/AppDongtaiListedVo.java @@ -44,9 +44,12 @@ public class AppDongtaiListedVo implements Serializable { @ApiModelProperty(value = "引用内容id") private Integer refId; + @ApiModelProperty(value = "发布用户") + private Integer userId; + private List userInfos; - private List appTags; + private List appTags; } diff --git a/server/like-front/src/main/java/com/mdd/front/vo/AppTagVo.java b/server/like-front/src/main/java/com/mdd/front/vo/AppTagVo.java new file mode 100644 index 0000000..96d65e2 --- /dev/null +++ b/server/like-front/src/main/java/com/mdd/front/vo/AppTagVo.java @@ -0,0 +1,32 @@ +package com.mdd.front.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.mdd.common.entity.dttag.AppTag; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class AppTagVo { + private static final long serialVersionUID = 1L; + + @TableId(value="id", type= IdType.AUTO) + @ApiModelProperty(value = "主键") + private Integer id; + + @ApiModelProperty(value = "创建时间") + private String createTime; + + @ApiModelProperty(value = "更新时间") + private String updateTime; + + @ApiModelProperty(value = "标签名称") + private String name; + + @ApiModelProperty(value = "父级id,顶级为0") + private Integer parentId; + + @ApiModelProperty(value = "标签类型,1分类,2标签") + private Integer type; +}