欢迎来到 铁岭市某某化工涂料运营部
全国咨询热线:020-123456789
联系我们

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

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

新闻中心
实现用算法用户推荐 修改 朋友圈 引入RockerMQ service
  来源:铁岭市某某化工涂料运营部  更新时间:2024-04-28 19:25:36

实现用算法用户推荐 修改 朋友圈 引入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;

}

}


友情链接(2022年)28款女朋友情人节礼物推荐!情人节送女朋友什么礼物?情人节送女生什么礼物好?情人节礼物攻略大全!女生想要的情人节礼物清单!祖尔格拉布地图在哪儿(魔兽祖尔格拉布装备掉落大全)破解版手游游戏平台下载大全(十大破解版游戏app平台)精心整理 神兜兜开箱子技巧强化版新USP免费领取中,超人气维纳斯皮肤返场直购仅剩3天魔兽世界阿克蒙德是哪个副本-阿克蒙德掉落物品汇总奥拉星究极玄武挑战答案大全苹果x专属游戏有哪些?iphonex必玩游戏下载-iphonex游戏推荐7句话让Codex给我做了个小游戏,还是极简版塞尔达,一玩简直停不下来游戏也有“春节档” !今年,爆款游戏带火了“非遗文化”手机充电很慢是什么原因?手机充电越充越少是什么原因?英雄联盟里的中路叫什么,英雄联盟中各个位置都叫什么和作用例如AP ADC魔兽世界怀旧服冬泉谷黑莲花刷新点位置英雄联盟视角锁定 英雄联盟:视角锁定功能对游戏体验的影响 (英雄联盟视角锁定怎么设置)魔兽世界怀旧服副本任务及掉落整理(上篇)迷你世界礼包码领取永久(迷你世界礼包码领取永久无限使用)赏金蛮族之王符文攻略:赏金蛮子天赋教学《保卫萝卜4》白萝卜传奇第2关通关攻略烬出门装鞋子送出关于学习方法的福利,学多少看个人造化王者荣耀S30黄忠怎么出装-S30黄忠出装推荐英雄联盟手游琴女怎么出装-琴女出装方案推荐LOL美服下载地址 LOL美服注册《炉石传说》狂野苔丝贼攻略:你根本不知道我的厉害英雄联盟腥红之月系列皮肤原画鉴赏大全附皮肤背景故事口袋妖怪黑2象征鸟配招(究极绿宝石5风妖精性格配招)阴阳师现世召唤阵高清大图 富士山和鸟居哪个爆SSR式神激情对射战地叛逆连队2下载链接 战地叛逆连队2安卓版下载2022魔兽世界怀旧服给蛮锤部族的警告任务攻略(拉尔德的午餐在哪)如何评价江南的《天之炽》?极品飞车15:变速2 v1.0四项修改器[MT-X]致敬, 那些DNF古老历史上我们错过的时装!DNF刃影通行券值得购买吗 刃影至尊通行证性价比及购买建议DNF:如何惩治摆摊骗子?只需要点一下站街,即可恶心他们魔兽世界WLK怀旧服声望攻略之牦牛人声望如何开启雷霆召唤破解版蝴蝶小仙女,把蝴蝶比喻成仙女撒花是什么句LCS联赛首秀 Poke流韦鲁斯强势归来梦幻西游:这个师门任务怎么做啊?14个回合都搞不定!
联系我们

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

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

0.2039

Copyright © 2024 Powered by 铁岭市某某化工涂料运营部   sitemap