...
|
...
|
@@ -13,15 +13,14 @@ import com.yoho.core.redis.cluster.operations.nosync.YHRedisTemplate; |
|
|
import com.yoho.core.redis.cluster.operations.nosync.YHValueOperations;
|
|
|
import com.yoho.core.redis.cluster.operations.serializer.RedisKeyBuilder;
|
|
|
import com.yoho.core.rest.client.ServiceCaller;
|
|
|
import com.yoho.error.event.LogEvent;
|
|
|
import com.yoho.service.model.sns.model.enums.GrassInboxBusinessTypeEnum;
|
|
|
import com.yoho.service.model.sns.response.GrassArticleBlockRspBO;
|
|
|
import com.yoho.service.model.social.request.BaseReqBO;
|
|
|
import com.yoho.service.model.social.request.UicUserReqBO;
|
|
|
import com.yoho.service.model.social.response.UserInfoRspBO;
|
|
|
import com.yohobuy.platform.common.enums.ArticleTypeEnum;
|
|
|
import com.yohobuy.platform.common.exception.PlatformException;
|
|
|
import com.yohobuy.platform.common.helper.ImagesHelper;
|
|
|
import com.yohobuy.platform.common.util.CollectionUtil;
|
|
|
import com.yohobuy.platform.common.util.DateUtil;
|
|
|
import com.yohobuy.platform.common.util.SerializeUtils;
|
|
|
import com.yohobuy.platform.common.util.StringUtil;
|
...
|
...
|
@@ -29,7 +28,6 @@ import com.yohobuy.platform.dal.grass.*; |
|
|
import com.yohobuy.platform.dal.grass.model.*;
|
|
|
import com.yohobuy.platform.dal.guang.IAuthorDAO;
|
|
|
import com.yohobuy.platform.dal.guang.model.Author;
|
|
|
import com.yohobuy.platform.dal.product.model.Goods;
|
|
|
import com.yohobuy.platform.grass.cache.UserInfoCacheHelper;
|
|
|
import com.yohobuy.platform.grass.service.IGrassArticleService;
|
|
|
import com.yohobuy.platform.grass.service.IGrassRefreshCacheService;
|
...
|
...
|
@@ -1496,6 +1494,7 @@ public class GrassArticleServiceImpl implements IGrassArticleService { |
|
|
rspBo.setSort(grassArticle.getSort());
|
|
|
//1)文章内容
|
|
|
List<GrassArticleBlock> grassArticleContentList = grassArticleBlockDao.selectByArticleId(articleId);
|
|
|
grassArticleContentList = handleContentWithAt(grassArticleContentList);
|
|
|
List<String> imageList = new ArrayList<>();
|
|
|
String text = "";
|
|
|
for (GrassArticleBlock content : grassArticleContentList) {
|
...
|
...
|
@@ -2230,4 +2229,45 @@ public class GrassArticleServiceImpl implements IGrassArticleService { |
|
|
}
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
|
|
|
public List<GrassArticleBlock> handleContentWithAt(List<GrassArticleBlock> blockList){
|
|
|
List<GrassArticleBlock> textBlockList = blockList.stream().filter(articleBlock -> articleBlock.getTemplateKey().equals("text")).collect(Collectors.toList());
|
|
|
List<Integer> uids = Lists.newArrayList();
|
|
|
if(CollectionUtils.isEmpty(blockList)){
|
|
|
return blockList;
|
|
|
}
|
|
|
Pattern p = Pattern.compile("@[0-9]+#");
|
|
|
for (GrassArticleBlock grassArticleBlock : textBlockList) {
|
|
|
String textContent = grassArticleBlock.getContentData();
|
|
|
Matcher m = p.matcher(textContent);
|
|
|
while (m.find()){
|
|
|
String uidStr = m.group();
|
|
|
uids.add(Integer.valueOf(uidStr.replaceAll("@","").replaceAll("#","")));
|
|
|
}
|
|
|
}
|
|
|
List<UserInfoRspBO> userInfoRspBOList = getUsersInfo(uids);
|
|
|
if(CollectionUtils.isNotEmpty(userInfoRspBOList)){
|
|
|
Map<Integer, UserInfoRspBO> userInfoMap = Maps.newHashMap();
|
|
|
userInfoRspBOList.forEach(userInfoRspBO -> {
|
|
|
userInfoMap.put(userInfoRspBO.getUid(), userInfoRspBO);
|
|
|
});
|
|
|
blockList.forEach(grassArticleBlock -> {
|
|
|
String content = grassArticleBlock.getContentData();
|
|
|
Matcher m = p.matcher(content);
|
|
|
while(m.find()){
|
|
|
String uidStr = m.group();
|
|
|
Integer uid = Integer.valueOf(uidStr.replaceAll("@","").replaceAll("#",""));
|
|
|
UserInfoRspBO userInfo = userInfoMap.get(uid);
|
|
|
if(userInfo != null){
|
|
|
content = content.replace(uidStr, "@"+userInfo.getNickName());
|
|
|
}
|
|
|
}
|
|
|
grassArticleBlock.setContentData(content);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return blockList;
|
|
|
}
|
|
|
} |
...
|
...
|
|