欢迎来到 许昌市某某信息技术有限公司
全国咨询热线:020-123456789
联系我们

地址:联系地址联系地址联系地址

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

新闻中心
实现用算法用户推荐 修改 朋友圈 引入RockerMQ service
  来源:许昌市某某信息技术有限公司  更新时间:2024-05-03 14:33:31

实现用算法用户推荐 修改 朋友圈 引入RockerMQ service




service 修改 朋友圈 引入RockerMQ service





import cn.hutool.core.bean.BeanUtil;

import cn.hutool.core.collection.CollUtil;

import cn.hutool.core.convert.Convert;

import cn.hutool.core.date.DateUtil;

import cn.hutool.core.util.ObjectUtil;

import cn.hutool.core.util.StrUtil;

import com.alibaba.dubbo.config.annotation.Reference;

import com.tanhua.common.pojo.User;

import com.tanhua.common.pojo.UserInfo;

import com.tanhua.common.service.PicUploadService;

import com.tanhua.common.utils.RelativeDateFormat;

import com.tanhua.common.utils.UserThreadLocal;

import com.tanhua.common.vo.PicUploadResult;

import com.tanhua.dubbo.server.api.QuanZiApi;

import com.tanhua.dubbo.server.api.VisitorsApi;

import com.tanhua.dubbo.server.pojo.Comment;

import com.tanhua.dubbo.server.pojo.Publish;

import com.tanhua.dubbo.server.pojo.Visitors;

import com.tanhua.dubbo.server.vo.PageInfo;

import com.tanhua.server.vo.CommentVo;

import com.tanhua.server.vo.PageResult;

import com.tanhua.server.vo.QuanZiVo;

import com.tanhua.server.vo.VisitorsVo;

import org.apache.commons.lang3.StringUtils;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import org.springframework.web.multipart.MultipartFile;

import java.util.*;

@Service

public class QuanZiService {

@Reference(version = "1.0.0")

private QuanZiApi quanZiApi;

@Reference(version = "1.0.0")

private VisitorsApi visitorsApi;

@Autowired

private UserService userService;

@Autowired

private UserInfoService userInfoService;

@Autowired

private PicUploadService picUploadService;

@Autowired

private QuanziMQService quanziMQService;

public PageResult queryPublishList(Integer page,实现 Integer pageSize) {

//分析 :通过dubbo中的服务查询用户的好友动态

//通过mysql查询用户的信息 ,回写到结果对象中(QuanZiVo)

PageResult pageResult = new PageResult();

pageResult.setPage(page);

pageResult.setPagesize(pageSize);

//直接从ThreadLocal中获取对象

User user = UserThreadLocal.get();

//通过dubbo查询数据

PageInfo<Publish> pageInfo = this.quanZiApi.queryPublishList(user.getId(),用算友圈引入 page, pageSize);

List<Publish> records = pageInfo.getRecords();

if (CollUtil.isEmpty(records)) {

return pageResult;

}

pageResult.setItems(this.fillQuanZiVo(records));

return pageResult;

}

/

**

* 填充用户信息

*

* @param userInfo

* @param quanZiVo

*/

private void fillUserInfoToQuanZiVo(UserInfo userInfo, QuanZiVo quanZiVo) {

BeanUtil.copyProperties(userInfo, quanZiVo, "id");

quanZiVo.setGender(userInfo.getSex().name().toLowerCase());

quanZiVo.setTags(StringUtils.split(userInfo.getTags(), ','));

//当前用户

User user = UserThreadLocal.get();

quanZiVo.setCommentCount(0); //TODO 评论数

quanZiVo.setDistance("1.2公里"); //TODO 距离

quanZiVo.setHasLiked(this.quanZiApi.queryUserIsLike(user.getId(), quanZiVo.getId()) ? 1 : 0); //是否点赞(1是 ,0否)

quanZiVo.setLikeCount(Convert.toInt(this.quanZiApi.queryLikeCount(quanZiVo.getId()))); //点赞数

quanZiVo.setHasLoved(this.quanZiApi.queryUserIsLove(user.getId(),法用 quanZiVo.getId()) ? 1 : 0); //是否喜欢(1是 ,0否)

quanZiVo.setLoveCount(Convert.toInt(this.quanZiApi.queryLoveCount(quanZiVo.getId()))); //喜欢数

}

/

**

* 根据查询到的户推publish集合填充QuanZiVo对象

*

* @param records

* @return

*/

private List<QuanZiVo> fillQuanZiVo(List<Publish> records) {

List<QuanZiVo> quanZiVoList = new ArrayList<>();

records.forEach(publish -> {

QuanZiVo quanZiVo = new QuanZiVo();

quanZiVo.setId(publish.getId().toHexString());

quanZiVo.setTextContent(publish.getText());

quanZiVo.setImageContent(publish.getMedias().toArray(new String[]{ }));

quanZiVo.setUserId(publish.getUserId());

quanZiVo.setCreateDate(RelativeDateFormat.format(new Date(publish.getCreated())));

quanZiVoList.add(quanZiVo);

});

//查询用户信息

List<Object> userIds = CollUtil.getFieldValues(records, "userId");

List<UserInfo> userInfoList = this.userInfoService.queryUserInfoByUserIdList(userIds);

for (QuanZiVo quanZiVo : quanZiVoList) {

//找到对应的用户信息

for (UserInfo userInfo : userInfoList) {

if (quanZiVo.getUserId().longValue() == userInfo.getUserId().longValue()) {

this.fillUserInfoToQuanZiVo(userInfo, quanZiVo);

break;

}

}

}

return quanZiVoList;

}

/

**

* 发布动态

*

* @param textContent

* @param location

* @param latitude

* @param longitude

* @param multipartFile

* @return

*/

public String savePublish(String textContent,

String location,

String latitude,

String longitude,

MultipartFile[] multipartFile) {

//查询当前的登录信息

User user = UserThreadLocal.get();

Publish publish = new Publish();

publish.setUserId(user.getId());

publish.setText(textContent);

publish.setLocationName(location);

publish.setLatitude(latitude);

publish.setLongitude(longitude);

publish.setSeeType(1);

List<String> picUrls = new ArrayList<>();

//图片上传

for (MultipartFile file : multipartFile) {

PicUploadResult picUploadResult = this.picUploadService.upload(file);

picUrls.add(picUploadResult.getName());

}

publish.setMedias(picUrls);

String publishId = this.quanZiApi.savePublish(publish);

if(StrUtil.isNotEmpty(publishId)){

//发送消息

this.quanziMQService.publishMsg(publishId);

}

return publishId;

}

public PageResult queryRecommendPublishList(Integer page, Integer pageSize) {

//分析 :通过dubbo中的服务查询系统推荐动态

//通过mysql查询用户的信息 ,回写到结果对象中(QuanZiVo)

PageResult pageResult = new PageResult();

pageResult.setPage(page);

pageResult.setPagesize(pageSize);

//直接从ThreadLocal中获取对象

User user = UserThreadLocal.get();

//通过dubbo查询数据

PageInfo<Publish> pageInfo = this.quanZiApi.queryRecommendPublishList(user.getId(),荐修 page, pageSize);

List<Publish> records = pageInfo.getRecords();

if (CollUtil.isEmpty(records)) {

return pageResult;

}

pageResult.setItems(this.fillQuanZiVo(records));

return pageResult;

}

/

**

* 动态点赞

* @param publishId

* @return

*/

public Long likeComment(String publishId) {

User user = UserThreadLocal.get();

Boolean result = this.quanZiApi.likeComment(user.getId(), publishId);

if (result) {

//发消息

this.quanziMQService.likePublishMsg(publishId);

//查询点赞数

return this.quanZiApi.queryLikeCount(publishId);

}

return null;

}

/

**

* 动态的取消点赞

*

* @param publishId

* @return

*/

public Long disLikeComment(String publishId) {

User user = UserThreadLocal.get();

Boolean result = this.quanZiApi.disLikeComment(user.getId(), publishId);

if (result) {

//发消息

this.quanziMQService.disLikePublishMsg(publishId);

//查询点赞数

return this.quanZiApi.queryLikeCount(publishId);

}

return null;

}

public Long loveComment(String publishId) {

User user = UserThreadLocal.get();

//喜欢

Boolean result = this.quanZiApi.loveComment(user.getId(), publishId);

if(result){

//发消息

this.quanziMQService.lovePublishMsg(publishId);

//查询喜欢数

return this.quanZiApi.queryLoveCount(publishId);

}

return null;

}

public Long disLoveComment(String publishId) {

User user = UserThreadLocal.get();

//取消喜欢

Boolean result = this.quanZiApi.disLoveComment(user.getId(), publishId);

if(result){

//发消息

this.quanziMQService.disLovePublishMsg(publishId);

//查询喜欢数

return this.quanZiApi.queryLoveCount(publishId);

}

return null;

}

public QuanZiVo queryById(String publishId) {

Publish publish = this.quanZiApi.queryPublishById(publishId);

if (publish == null) {

return null;

}

//发消息

this.quanziMQService.queryPublishMsg(publishId);

return this.fillQuanZiVo(Arrays.asList(publish)).get(0);

}

/

**

* 查询评论列表

*

* @param publishId

* @param page

* @param pageSize

* @return

*/

public PageResult queryCommentList(String publishId, Integer page, Integer pageSize) {

PageResult pageResult = new PageResult();

pageResult.setPage(page);

pageResult.setPagesize(pageSize);

User user = UserThreadLocal.get();

//查询评论列表数据

PageInfo<Comment> pageInfo = this.quanZiApi.queryCommentList(publishId, page, pageSize);

List<Comment> records = pageInfo.getRecords();

if(CollUtil.isEmpty(records)){

return pageResult;

}

//查询用户信息

List<Object> userIdList = CollUtil.getFieldValues(records, "userId");

List<UserInfo> userInfoList = this.userInfoService.queryUserInfoByUserIdList(userIdList);

List<CommentVo> result = new ArrayList<>();

for (Comment record : records) {

CommentVo commentVo = new CommentVo();

commentVo.setContent(record.getContent());

commentVo.setId(record.getId().toHexString());

commentVo.setCreateDate(DateUtil.format(new Date(record.getCreated()), "HH:mm"));

//是否点赞

commentVo.setHasLiked(this.quanZiApi.queryUserIsLike(user.getId(), commentVo.getId()) ? 1 : 0);

//点赞数

commentVo.setLikeCount(Convert.toInt(this.quanZiApi.queryLikeCount(commentVo.getId())));

for (UserInfo userInfo : userInfoList) {

if(ObjectUtil.equals(record.getUserId(), userInfo.getUserId())){

commentVo.setAvatar(userInfo.getLogo());

commentVo.setNickname(userInfo.getNickName());

break;

}

}

result.add(commentVo);

}

pageResult.setItems(result);

return pageResult;

}

/

**

* 发表评论

* @param publishId

* @param content

* @return

*/

public Boolean saveComments(String publishId, String content) {

User user = UserThreadLocal.get();

Boolean result = this.quanZiApi.saveComment(user.getId(), publishId, content);

if(result){

//发消息

this.quanziMQService.commentPublishMsg(publishId);

}

return result;

}

public PageResult queryAlbumList(Long userId, Integer page, Integer pageSize) {

PageResult pageResult = new PageResult();

pageResult.setPage(page);

pageResult.setPagesize(pageSize);

//查询数据

PageInfo<Publish> pageInfo = this.quanZiApi.queryAlbumList(userId, page, pageSize);

if(CollUtil.isEmpty(pageInfo.getRecords())){

return pageResult;

}

//填充数据

pageResult.setItems(this.fillQuanZiVo(pageInfo.getRecords()));

return pageResult;

}

public List<VisitorsVo> queryVisitorsList() {

User user = UserThreadLocal.get();

List<Visitors> visitorsList = this.visitorsApi.queryMyVisitor(user.getId());

if (CollUtil.isEmpty(visitorsList)) {

return Collections.emptyList();

}

List<Object> userIds = CollUtil.getFieldValues(visitorsList, "visitorUserId");

List<UserInfo> userInfoList = this.userInfoService.queryUserInfoByUserIdList(userIds);

List<VisitorsVo> visitorsVoList = new ArrayList<>();

for (Visitors visitor : visitorsList) {

for (UserInfo userInfo : userInfoList) {

if (ObjectUtil.equals(visitor.getVisitorUserId(), userInfo.getUserId())) {

VisitorsVo visitorsVo = new VisitorsVo();

visitorsVo.setAge(userInfo.getAge());

visitorsVo.setAvatar(userInfo.getLogo());

visitorsVo.setGender(userInfo.getSex().name().toLowerCase());

visitorsVo.setId(userInfo.getUserId());

visitorsVo.setNickname(userInfo.getNickName());

visitorsVo.setTags(StringUtils.split(userInfo.getTags(), ','));

visitorsVo.setFateValue(visitor.getScore().intValue());

visitorsVoList.add(visitorsVo);

break;

}

}

}

return visitorsVoList;

}

}


友情链接ap阿木木怎么出装(新版本阿木木出装和铭文)大掌门应用宝版 v2.6.1安卓版大闹天庭篇v3.1版本更新公告大闹天庭篇 V1.7更新公告----水下迷宫新仙剑奇侠传之挥剑问情手游光子服征途2经典版各新手卡领取方法及礼包领取大全LOLS11季前赛大树玩法出装胡来三国魏延怎么样胡莱三国2关羽有什么用胡莱三国陈宫技能搭配,胡莱三国这个陈宫满的属性么应该配什么技能热血江湖自动化点击识别图片游戏网页办公挂机脚本制作开发定制七雄争霸3弓2器全面解析 3弓2器已成过去式征途2什么职业好,征途2最佳职业排行神鬼传奇龙鳞坐标 神鬼传奇:龙鳞坐标揭秘弹弹堂大冒险怀旧版回归:极海王叉直接起飞征途2手游ios最新版v1.2.23 官网iphone版12.19版本更新公告:辛德拉中型更新,灵魂莲华系列全新皮肤上线胡来三国魏延怎么样摩尔庄园是怎么衰落的?热血江湖1⴯x2d;⴯x2d;120级怪爆武器一览表绿色征途手游怎么搬砖?绿色征途打金一天单号能赚几十块《大唐无双2》:游戏好不好玩&氪不氪金:平民玩家最快赚钱方法?小黑猪汉诺塔 v1.3投诉|报错热血江湖官方网站·合作媒体正在阅读:胡莱三国4武将能力怎么提升 胡莱三国4武将能力提升攻略【详解】胡莱三国4武将能力怎么提升 胡莱三国4武将能力提升攻略【详解】胡莱三国4手游征途2攻略(最新整理版).docx摩尔庄园手游拉姆装扮怎么获得 拉姆装扮获得方法热血江湖官方网站·合作媒体造梦西游3宣花葫芦 *** 全攻略:一步步教你打造神器大掌门安卓gm版下载 v5.0 最新版★▇▇▇热血小宝咨询交流中心广场▇▇▇热血江湖韩飞官技能全面解析 个人心得分享大唐无双手游12个职业选哪个大掌门2APP下载:《大掌门2》甲级弟子介绍之叶城主浪漫庄园咖啡伴侣修改器大唐无双手游新区冲级攻略 手把手教你冲新区胡莱三国3军机营怎么玩 军机营玩法攻略LOLs14阿木木出装推荐七雄争霸 武将选择攻略 七雄争霸武将选择攻略
联系我们

地址:联系地址联系地址联系地址

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

0.218

Copyright © 2024 Powered by 许昌市某某信息技术有限公司   sitemap