Commit 9efefe46 authored by 王亚雷's avatar 王亚雷

Merge remote-tracking branch 'origin/v2.2.10'

parents 5acdfba4 2d0649f2
package com.tanpu.community.api.beans.qo.feign.fatools;
import com.tanpu.community.api.beans.req.page.Pageable;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UserInfoCorpReq {
@ApiModelProperty(value = "热门推荐id")
private String hotRecommendId;
@ApiModelProperty(value = "分页查询")
private Pageable page;
@ApiModelProperty(value = "排除id")
private List<String> excludeIds;
}
package com.tanpu.community.api.beans.resp;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "首页功能是否展示")
public class HomeSettingsResp {
@ApiModelProperty("显示推门推荐 0:否 1:是")
private Integer showHotRecommend;
@ApiModelProperty("显示热门话题 0:否 1:是")
private Integer showHotTopic;
}
package com.tanpu.community.api.beans.resp;
import com.tanpu.community.api.beans.qo.FollowQo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "热门推荐")
public class HotRecommendResp {
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("热门推荐")
private String hotRecommendId;
@ApiModelProperty("用户信息")
private List<FollowQo> userInfo;
}
package com.tanpu.community.api.beans.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SysConstantResp {
private String constantCode;
private String constantName;
private String constantValue;
}
package com.tanpu.community.api.beans.vo.feign.fatools;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("首席投顾信息")
public class UserInfoChiefInvAdvResp {
@ApiModelProperty(value = "首席投顾id")
private Integer id;
@ApiModelProperty(value = "用户id")
private String userId;
@ApiModelProperty(value = "姓名")
private String userName;
@ApiModelProperty(value = "头像url")
private String headImageUrl;
}
package com.tanpu.community.api.beans.vo.feign.fatools;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("机构信息")
public class UserInfoCorpResp {
@ApiModelProperty(value = "机构id")
private String corpId;
@ApiModelProperty(value = "公司全称")
private String corpName;
@ApiModelProperty(value = "申请用户id")
private String applyUserId;
@ApiModelProperty(value = "认证名称")
private String certName;
}
......@@ -11,10 +11,13 @@ import com.tanpu.community.api.beans.req.homepage.QueryRecordThemeReq;
import com.tanpu.community.api.beans.req.page.Page;
import com.tanpu.community.api.beans.req.page.Pageable;
import com.tanpu.community.api.beans.resp.Customer;
import com.tanpu.community.api.beans.resp.HomeSettingsResp;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoNewChief;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoResp;
import com.tanpu.community.feign.activity.FeignClientForActivity;
import com.tanpu.community.manager.HomePageManager;
import com.tanpu.community.manager.ThemeManager;
import com.tanpu.community.service.HotRecommendService;
import com.tanpu.community.util.HttpServletHelper;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
......@@ -49,6 +52,12 @@ public class HomePageController {
@Resource
private HttpServletHelper httpServletHelper;
@Resource
private HotRecommendService hotRecommendService;
@Resource
private FeignClientForActivity feignClientForActivity;
// 用户信息查询 (供圈子服务调用)
@ApiOperation(value = "个人中心 查询")
......@@ -104,4 +113,9 @@ public class HomePageController {
return CommonResp.success(themeManager.queryThemesByUser(req, selfUserId));
}
@ApiOperation(value = "首页功能展示配置v2.2.10")
@GetMapping(value = "/getHomeSettings")
public CommonResp<HomeSettingsResp> getHomeSettings() {
return hotRecommendService.getHomeSettings();
}
}
package com.tanpu.community.controller;
import com.tanpu.common.api.CommonResp;
import com.tanpu.community.api.beans.qo.FollowQo;
import com.tanpu.community.api.beans.qo.feign.fatools.UserInfoCorpReq;
import com.tanpu.community.api.beans.req.page.Page;
import com.tanpu.community.api.beans.resp.HotRecommendResp;
import com.tanpu.community.service.HotRecommendService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
@Slf4j
@Api(tags = "首页热门推荐")
public class HotRecommendController {
@Resource
private HotRecommendService hotRecommendService;
@GetMapping(value = "/hotRecommend")
@ApiOperation("首页热门推荐列表v2.2.10")
public CommonResp<List<HotRecommendResp>> hotRecommend() {
return CommonResp.success(hotRecommendService.hotRecommendList());
}
@PostMapping(value = "/hotRecommend/list")
@ApiOperation("首页热门推荐详情列表v2.2.10")
public CommonResp<Page<FollowQo>> hotRecommendList(@RequestBody UserInfoCorpReq req) {
return CommonResp.success(hotRecommendService.hotRecommendDetailList(req));
}
}
package com.tanpu.community.dao.entity.community;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 热门推荐
*/
@ApiModel(value="com-tanpu-community-dao-entity-community-HotRecommend")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "hot_recommend")
public class HotRecommend {
/**
* 主键id
*/
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value="主键id")
private Integer id;
/**
* 热门推荐id
*/
@TableField(value = "hot_recommend_id")
@ApiModelProperty(value="热门推荐id")
private String hotRecommendId;
/**
* 类型名称
*/
@TableField(value = "`name`")
@ApiModelProperty(value="类型名称")
private String name;
/**
* 1:首席理顾 2:认证机构3:指定用户
*/
@TableField(value = "`type`")
@ApiModelProperty(value="1:首席理顾 2:认证机构3:指定用户")
private Integer type;
/**
* 0:不展示 1:展示
*/
@TableField(value = "is_show")
@ApiModelProperty(value="0:不展示 1:展示")
private Integer isShow;
/**
* 排序 按数字正序
*/
@TableField(value = "sort")
@ApiModelProperty(value="排序 按数字正序")
private Integer sort;
/**
* 是否删除 0:否 1:是
*/
@TableField(value = "delete_tag")
@ApiModelProperty(value="是否删除 0:否 1:是")
private Integer deleteTag;
/**
* 创建时间
*/
@TableField(value = "create_time")
@ApiModelProperty(value="创建时间")
private Date createTime;
/**
* 创建人
*/
@TableField(value = "create_by")
@ApiModelProperty(value="创建人")
private String createBy;
public static final String COL_ID = "id";
public static final String COL_HOT_RECOMMEND_ID = "hot_recommend_id";
public static final String COL_NAME = "name";
public static final String COL_TYPE = "type";
public static final String COL_IS_SHOW = "is_show";
public static final String COL_SORT = "sort";
public static final String COL_DELETE_TAG = "delete_tag";
public static final String COL_CREATE_TIME = "create_time";
public static final String COL_CREATE_BY = "create_by";
}
\ No newline at end of file
package com.tanpu.community.dao.entity.community;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel(value="com-tanpu-community-dao-entity-community-HotRecommendUser")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "hot_recommend_user")
public class HotRecommendUser {
/**
* 主键id
*/
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value="主键id")
private Integer id;
/**
* 关联id
*/
@TableField(value = "rel_id")
@ApiModelProperty(value="关联id")
private String relId;
/**
* 0:推荐的用户 1:排除的用户
*/
@TableField(value = "is_exclude")
@ApiModelProperty(value="0:推荐的用户 1:排除的用户")
private Integer isExclude;
/**
* 推荐id
*/
@TableField(value = "hot_recommend_id")
@ApiModelProperty(value="推荐id")
private String hotRecommendId;
/**
* 是否删除
*/
@TableField(value = "delete_tag")
@ApiModelProperty(value="是否删除")
private Integer deleteTag;
public static final String COL_ID = "id";
public static final String COL_REL_ID = "rel_id";
public static final String COL_IS_EXCLUDE = "is_exclude";
public static final String COL_HOT_RECOMMEND_ID = "hot_recommend_id";
public static final String COL_DELETE_TAG = "delete_tag";
}
\ No newline at end of file
package com.tanpu.community.dao.mapper.community;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tanpu.community.dao.entity.community.HotRecommend;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface HotRecommendMapper extends BaseMapper<HotRecommend> {
}
\ No newline at end of file
package com.tanpu.community.dao.mapper.community;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tanpu.community.dao.entity.community.HotRecommendUser;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface HotRecommendUserMapper extends BaseMapper<HotRecommendUser> {
}
\ No newline at end of file
package com.tanpu.community.feign.activity;
import com.alibaba.fastjson.JSONObject;
import com.tanpu.common.api.CommonResp;
import com.tanpu.community.api.beans.req.page.Page;
import com.tanpu.community.api.beans.vo.feign.activity.OfflineActivitySimpleResp;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
......@@ -29,7 +31,12 @@ public class FeignBackClientForActivity implements FallbackFactory<FeignClientFo
return CommonResp.error();
}
@Override
public CommonResp<List<OfflineActivitySimpleResp>> queryCorpHomeActivityList(String orgId) {
log.error("请求信息", throwable);
log.error("FeignClientForActivity.offlineActivityDetail-查询活动orgId:{}", orgId);
return CommonResp.error();
}
};
}
}
......@@ -21,4 +21,8 @@ public interface FeignClientForActivity {
@ApiOperation("线下活动列表-通过机构查询")
@GetMapping(value = "/offlineActivity/inter/listByOrgId")
CommonResp<List<OfflineActivitySimpleResp>> simpleListByOrgid(@ApiParam("机构id") @RequestParam(value = "orgId") String orgId);
@ApiOperation("线下活动列表-查询机构首页线下活动列表")
@GetMapping(value = "/offlineActivity/inter/queryCorpHomeActivityList")
CommonResp<List<OfflineActivitySimpleResp>> queryCorpHomeActivityList(@ApiParam("活动id") @RequestParam(value = "corpId") String corpId);
}
package com.tanpu.community.feign.fatools;
import com.tanpu.common.api.CommonResp;
import com.tanpu.community.api.beans.qo.feign.fatools.UserInfoCorpReq;
import com.tanpu.community.api.beans.req.page.Page;
import com.tanpu.community.api.beans.resp.SysConstantResp;
import com.tanpu.community.api.beans.vo.feign.course.ShortVideoBaseInfoResp;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoChiefInvAdvResp;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoCorpResp;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoNewChief;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoOrg;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoResp;
......@@ -13,6 +17,8 @@ import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
......@@ -61,4 +67,15 @@ public interface FeignClientForFatools {
List<UserInfoResp> queryByUserNameMp(@RequestParam("keyword") String keyword,
@RequestParam("pageSize") Integer pageSize,
@RequestParam("pageNumber") Integer pageNumber);
@ApiOperation(value = "查询机构列表过滤指定id")
@PostMapping(value = "/corp/queryCorpListWithExcludeId")
CommonResp<Page<UserInfoCorpResp>> queryCorpListWithExcludeId(@RequestBody UserInfoCorpReq req);
@ApiOperation(value = "查询首席投顾列表过滤指定id")
@PostMapping(value = "/user/queryChiefInvAdvListWithExcludeId")
CommonResp<Page<UserInfoChiefInvAdvResp>> queryChiefInvAdvListWithExcludeId(@RequestBody UserInfoCorpReq req);
@GetMapping(value = "/h5/sysconstant/queryByconstantGroup", produces = {"application/json"})
CommonResp<List<SysConstantResp>> queryLabels(@ApiParam(value = "分组类型") @RequestParam("constantGroup") String constantGroup);
}
package com.tanpu.community.feign.fatools;
import com.tanpu.common.api.CommonResp;
import com.tanpu.community.api.beans.qo.feign.fatools.UserInfoCorpReq;
import com.tanpu.community.api.beans.req.page.Page;
import com.tanpu.community.api.beans.resp.SysConstantResp;
import com.tanpu.community.api.beans.vo.feign.course.ShortVideoBaseInfoResp;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoChiefInvAdvResp;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoCorpResp;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoNewChief;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoOrg;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoResp;
......@@ -77,6 +81,24 @@ public class FeignbackForFatools implements FallbackFactory<FeignClientForFatool
log.info("FeignbackForFatools.queryByUserNameMp", throwable);
return null;
}
@Override
public CommonResp<Page<UserInfoCorpResp>> queryCorpListWithExcludeId(UserInfoCorpReq req) {
log.error("FeignbackForFatools.queryByUserNameMp", throwable);
return CommonResp.error();
}
@Override
public CommonResp<Page<UserInfoChiefInvAdvResp>> queryChiefInvAdvListWithExcludeId(UserInfoCorpReq req) {
log.error("FeignbackForFatools.queryByUserNameMp", throwable);
return CommonResp.error();
}
@Override
public CommonResp<List<SysConstantResp>> queryLabels(String constantGroup) {
log.error("FeignbackForFatools.queryLabels", throwable);
return CommonResp.error();
}
};
}
......
......@@ -184,12 +184,12 @@ public class HomePageManager {
userInfoNew.setUserInfoOrgList(userInfoOrgs);
}
// 家办活动
CommonResp<List<OfflineActivitySimpleResp>> activitySimpleResps = feignClientForActivity.simpleListByOrgid(userInfoNew.getUserInfoNewOrg().getCorpId());
CommonResp<List<OfflineActivitySimpleResp>> activitySimpleResps = feignClientForActivity.queryCorpHomeActivityList(userInfoNew.getUserInfoNewOrg().getCorpId());
if (activitySimpleResps.isSuccess() && CollectionUtils.isNotEmpty(activitySimpleResps.getData())) {
List<OfflineActivitySimpleResp> activities = activitySimpleResps.getData();
if (CollectionUtils.isNotEmpty(activities)){
userInfoNew.setHoldActivities(activities.stream().filter(o->o.getActivityType().equals(1)).collect(Collectors.toList()));
userInfoNew.setTeamRecruitment(activities.stream().filter(o->o.getActivityType().equals(2)).collect(Collectors.toList()));
if (CollectionUtils.isNotEmpty(activities)) {
userInfoNew.setHoldActivities(activities.stream().filter(o -> o.getActivityType().equals(1)).collect(Collectors.toList()));
userInfoNew.setTeamRecruitment(activities.stream().filter(o -> o.getActivityType().equals(2)).collect(Collectors.toList()));
}
}
......@@ -201,9 +201,9 @@ public class HomePageManager {
if (integerCommonResp.isSuccess()) userInfoNew.setCourseNumber(integerCommonResp.getData());
}
// 主页背景图
if (CommunityConstant.BACKGROUND_IMG_URL_MAP.containsKey(userInfoNew.getUserId())){
if (CommunityConstant.BACKGROUND_IMG_URL_MAP.containsKey(userInfoNew.getUserId())) {
userInfoNew.setBackgroundImgUrl(CommunityConstant.BACKGROUND_IMG_URL_MAP.get(userInfoNew.getUserId()));
}else {
} else {
userInfoNew.setBackgroundImgUrl(CommunityConstant.BACKGROUND_IMG_URL_MAP.get("default"));
}
......@@ -252,7 +252,7 @@ public class HomePageManager {
followRelService.queryFansByIdolId(req.userId, pageNumber, pageSize)
: followRelService.queryIdolsByFansId(req.userId, pageNumber, pageSize);
if (CollectionUtils.isEmpty(userIdsPage.getContent())) {
return PageUtils.page(userIdsPage, Lists.newArrayListWithCapacity(0));
return PageUtils.page(userIdsPage, Lists.newArrayListWithCapacity(0));
}
List<UserInfoResp> userInfoNews = feignClientForFatools.queryUserListNew(userIdsPage.getContent());
List<FollowQo> followQos = userInfoNews.stream().map(ConvertUtil::userInfoNew2FollowQo).collect(Collectors.toList());
......@@ -279,7 +279,7 @@ public class HomePageManager {
// 第一次关注才有消息通知
if (followRelService.addFollowRel(req.getFollowUserId(), followerId)) {
notificationService.insert(followerId, req.getFollowUserId(), NotificationTypeEnum.FOLLOW, req.getFollowUserId(), null);
notificationService.putNotifyCache(req.getFollowUserId(), followerId,NotificationTypeEnum.FOLLOW);
notificationService.putNotifyCache(req.getFollowUserId(), followerId, NotificationTypeEnum.FOLLOW);
}
} else if (OperationTypeEnum.CANCEL.getCode().equals(req.getType())) {
followRelService.deleteFollowRel(req.getFollowUserId(), followerId);
......@@ -295,10 +295,10 @@ public class HomePageManager {
}
public List<FollowQo> userNameSerach(String keyword, Integer pageNumber, Integer pageSize, String ident, String userId) {
if (StringUtils.isBlank(keyword)){
if (StringUtils.isBlank(keyword)) {
return Collections.emptyList();
}
List<UserInfoResp> userInfoResps = feignClientForFatools.queryByUserNameMp(keyword,pageSize,pageNumber);
List<UserInfoResp> userInfoResps = feignClientForFatools.queryByUserNameMp(keyword, pageSize, pageNumber);
List<FollowQo> followQos = userInfoResps.stream().map(ConvertUtil::userInfoNew2FollowQo).collect(Collectors.toList());
if (StringUtils.isNotEmpty(userId)) {
judgeFollowed(followQos, userId);
......
......@@ -52,6 +52,7 @@ import com.tanpu.community.service.*;
import com.tanpu.community.service.base.ESService;
import com.tanpu.community.util.BizUtils;
import com.tanpu.community.util.ConvertUtil;
import com.tanpu.community.util.OtherUtil;
import com.tanpu.community.util.RankUtils;
import com.tanpu.community.util.TencentcloudUtils;
import com.tanpu.community.util.TimeUtils;
......@@ -897,7 +898,7 @@ public class ThemeManager {
//评论内容包装到ThemeContentQo里
ThemeContentQo commentContent = ThemeContentQo.builder()
.type(RelTypeEnum.TEXT.type)
.value(commentEntity.getContent())
.value(OtherUtil.blockPhoneAndEmail(commentEntity.getContent()))
.build();
......
package com.tanpu.community.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import com.tanpu.common.api.CommonResp;
import com.tanpu.community.api.beans.qo.FollowQo;
import com.tanpu.community.api.beans.qo.feign.fatools.UserInfoCorpReq;
import com.tanpu.community.api.beans.req.page.Page;
import com.tanpu.community.api.beans.req.page.Pageable;
import com.tanpu.community.api.beans.resp.HomeSettingsResp;
import com.tanpu.community.api.beans.resp.HotRecommendResp;
import com.tanpu.community.api.beans.resp.SysConstantResp;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoChiefInvAdvResp;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoCorpResp;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoResp;
import com.tanpu.community.api.enums.DeleteTagEnum;
import com.tanpu.community.dao.entity.community.HotRecommend;
import com.tanpu.community.dao.entity.community.HotRecommendUser;
import com.tanpu.community.dao.mapper.community.HotRecommendMapper;
import com.tanpu.community.dao.mapper.community.HotRecommendUserMapper;
import com.tanpu.community.feign.fatools.FeignClientForFatools;
import com.tanpu.community.util.ConvertUtil;
import com.tanpu.community.util.HttpServletHelper;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.validation.constraints.NotEmpty;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 首页推荐
*/
@Service
public class HotRecommendService {
@Resource
private HotRecommendMapper hotRecommendMapper;
@Resource
private HotRecommendUserMapper hotRecommendUserMapper;
@Resource
private FeignClientForFatools feignClientForFatools;
@Resource
private FollowRelService followRelService;
@Resource
private HttpServletHelper httpServletHelper;
/**
* 首页热门推荐列表
*
* @return
*/
public List<HotRecommendResp> hotRecommendList() {
LambdaQueryWrapper<HotRecommend> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HotRecommend::getDeleteTag, DeleteTagEnum.NOT_DELETED)
.eq(HotRecommend::getIsShow, 1)
.orderByAsc(HotRecommend::getSort)
.orderByDesc(HotRecommend::getCreateTime);
List<HotRecommend> hotRecommends = hotRecommendMapper.selectList(queryWrapper);
return hotRecommends.stream().map(item -> {
List<FollowQo> list = Lists.newArrayList();
if (item.getType() == 1) {
list = this.getChiefInvAdv(UserInfoCorpReq.builder()
.hotRecommendId(item.getHotRecommendId())
.page(new Pageable(1, 4)).build()).getContent();
} else if (item.getType() == 2) {
list = this.getCorpInfo(UserInfoCorpReq.builder()
.hotRecommendId(item.getHotRecommendId())
.page(new Pageable(1, 4)).build()).getContent();
} else if (item.getType() == 3) {
list = this.getUserInfo(UserInfoCorpReq.builder()
.hotRecommendId(item.getHotRecommendId())
.page(new Pageable(1, 4)).build()).getContent();
}
return HotRecommendResp.builder()
.hotRecommendId(item.getHotRecommendId())
.name(item.getName())
.userInfo(list)
.build();
}).collect(Collectors.toList());
}
public Page<FollowQo> hotRecommendDetailList(UserInfoCorpReq req) {
LambdaQueryWrapper<HotRecommend> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HotRecommend::getHotRecommendId, req.getHotRecommendId());
HotRecommend hotRecommend = hotRecommendMapper.selectOne(queryWrapper);
Page<FollowQo> page = null;
if (hotRecommend.getType() == 1) {
page = this.getChiefInvAdv(req);
} else if (hotRecommend.getType() == 2) {
page = this.getCorpInfo(req);
} else if (hotRecommend.getType() == 3) {
page = this.getUserInfo(req);
}
if (StringUtils.isNotEmpty(httpServletHelper.getCurrentUserId())) {
page.setContent(judgeFollowed(page.getContent(), httpServletHelper.getCurrentUserId()));
}
return page;
}
//判断返回列表中的用户是否被当前用户关注
public List<FollowQo> judgeFollowed(List<FollowQo> followQos, @NotEmpty String followerId) {
Set<String> idolSet = new HashSet<>(followRelService.queryIdolsByFansId(followerId));
return followQos.stream().map(o -> {
if (idolSet.contains(o.getUserId())) {
o.setFollowed(true);
}
return o;
}).collect(Collectors.toList());
}
private Page<FollowQo> getCorpInfo(UserInfoCorpReq req) {
LambdaQueryWrapper<HotRecommendUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HotRecommendUser::getHotRecommendId, req.getHotRecommendId()).eq(HotRecommendUser::getIsExclude, 1);
List<HotRecommendUser> hotRecommendUsers = this.hotRecommendUserMapper.selectList(queryWrapper);
CommonResp<Page<UserInfoCorpResp>> pageCommonResp = this.feignClientForFatools.queryCorpListWithExcludeId(UserInfoCorpReq.builder()
.excludeIds(hotRecommendUsers.stream().map(HotRecommendUser::getRelId).collect(Collectors.toList()))
.page(req.getPage())
.build());
List<String> userIds = pageCommonResp.getData().getContent().stream()
.map(UserInfoCorpResp::getApplyUserId).collect(Collectors.toList());
List<UserInfoResp> userInfoResps = this.feignClientForFatools.queryUserListNew(userIds);
List<FollowQo> list = userInfoResps.stream().map(item -> {
return ConvertUtil.userInfoNew2FollowQo(item);
}).collect(Collectors.toList());
Page page = new Page();
page.setPageNum(pageCommonResp.getData().getPageNum());
page.setPageSize(pageCommonResp.getData().getPageSize());
page.setTotalSize(pageCommonResp.getData().getTotalSize());
page.setTotalPages(pageCommonResp.getData().getTotalPages());
page.setContent(list);
return page;
}
private Page<FollowQo> getChiefInvAdv(UserInfoCorpReq req) {
LambdaQueryWrapper<HotRecommendUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HotRecommendUser::getHotRecommendId, req.getHotRecommendId()).eq(HotRecommendUser::getIsExclude, 1);
List<HotRecommendUser> hotRecommendUsers = this.hotRecommendUserMapper.selectList(queryWrapper);
CommonResp<Page<UserInfoChiefInvAdvResp>> pageCommonResp = this.feignClientForFatools.queryChiefInvAdvListWithExcludeId(UserInfoCorpReq.builder()
.excludeIds(hotRecommendUsers.stream().map(HotRecommendUser::getRelId).collect(Collectors.toList()))
.page(req.getPage())
.build());
List<UserInfoResp> userInfoResps = this.feignClientForFatools.queryUserListNew(pageCommonResp.getData().getContent().stream()
.map(UserInfoChiefInvAdvResp::getUserId).collect(Collectors.toList()));
List<FollowQo> list = userInfoResps.stream().map(item -> {
return ConvertUtil.userInfoNew2FollowQo(item);
}).collect(Collectors.toList());
Page page = new Page();
page.setPageNum(pageCommonResp.getData().getPageNum());
page.setPageSize(pageCommonResp.getData().getPageSize());
page.setTotalSize(pageCommonResp.getData().getTotalSize());
page.setTotalPages(pageCommonResp.getData().getTotalPages());
page.setContent(list);
return page;
}
private Page<FollowQo> getUserInfo(UserInfoCorpReq req) {
LambdaQueryWrapper<HotRecommendUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HotRecommendUser::getHotRecommendId, req.getHotRecommendId()).eq(HotRecommendUser::getIsExclude, 0);
com.github.pagehelper.Page<HotRecommendUser> page = PageHelper.startPage(req.getPage().getPageNumber(), req.getPage().getPageSize());
PageInfo pageInfo = new PageInfo(this.hotRecommendUserMapper.selectList(queryWrapper));
List<HotRecommendUser> hotRecommendUsers = pageInfo.getList();
if (CollectionUtils.isEmpty(hotRecommendUsers)) {
return new Page<>(page, Lists.newArrayList());
}
List<UserInfoResp> userInfoResps = this.feignClientForFatools.queryUserListNew(hotRecommendUsers.stream()
.map(HotRecommendUser::getRelId).collect(Collectors.toList()));
List<FollowQo> list = userInfoResps.stream().map(item -> {
return ConvertUtil.userInfoNew2FollowQo(item);
}).collect(Collectors.toList());
return new Page<>(page, list);
}
/**
* 获取首页配置
*
* @return
*/
public CommonResp<HomeSettingsResp> getHomeSettings() {
HomeSettingsResp resp = HomeSettingsResp.builder()
.showHotRecommend(1)
.showHotTopic(1)
.build();
// community_topic 圈子首页是否展示热门话题 community_home_recommend 圈子首页是否展示热门推荐模块
CommonResp<List<SysConstantResp>> sysConstantResp = feignClientForFatools.queryLabels("community_module_settings");
if (sysConstantResp.isSuccess()) {
Map<String, String> collect = sysConstantResp.getData().stream().collect(Collectors.toMap(SysConstantResp::getConstantCode, SysConstantResp::getConstantValue));
resp.setShowHotRecommend(Integer.parseInt(collect.getOrDefault("community_home_recommend", "1")));
resp.setShowHotTopic(Integer.parseInt(collect.getOrDefault("community_topic", "1")));
}
return CommonResp.success(resp);
}
}
......@@ -96,7 +96,7 @@ public class RankService {
LocalDateTime start = LocalDateTime.now();
//7天内所有主题进行热度值排序
List<ThemeEntity> themeEntities = themeService.queryRecentdays(30);
List<ThemeEntity> themeEntities = themeService.queryRecentdays(60);
if (CollectionUtils.isEmpty(themeEntities)) {
return;
}
......
......@@ -87,8 +87,9 @@ public class ThemeService {
//根据id返回主题详情(未删)
public ThemeEntity queryByThemeIdIgnoreDelete(String themeId) {
return themeMapper.selectOne(new LambdaQueryWrapper<ThemeEntity>()
ThemeEntity themeEntity = themeMapper.selectOne(new LambdaQueryWrapper<ThemeEntity>()
.eq(ThemeEntity::getThemeId, themeId));
return themeEntity;
}
//根据用户id查询主题list
......@@ -141,7 +142,8 @@ public class ThemeService {
.in(ThemeEntity::getThemeId, themeIds)
.eq(ThemeEntity::getDeleteTag, DeleteTagEnum.NOT_DELETED.getCode());
return themeMapper.selectList(queryWrapper);
List<ThemeEntity> themeEntities = themeMapper.selectList(queryWrapper);
return themeEntities;
}
......
......@@ -47,7 +47,8 @@ public class ConvertUtil {
themeQO.setCreateTime(TimeUtils.getTimestampOfDateTime(themeEntity.getCreateTime()));
themeQO.setUpToNowTime(TimeUtils.calUpToNowTime(themeEntity.getCreateTime()));
themeQO.setFormatTime(TimeUtils.format(themeEntity.getCreateTime()));
List<ThemeContentQo> themeContentQos = JsonUtil.toBean(themeEntity.getContent(), new TypeReference<List<ThemeContentQo>>() {
// 屏蔽手机号和邮箱
List<ThemeContentQo> themeContentQos = JsonUtil.toBean(OtherUtil.blockPhoneAndEmail(themeEntity.getContent()), new TypeReference<List<ThemeContentQo>>() {
});
themeQO.setContent(themeContentQos);
return themeQO;
......@@ -133,6 +134,7 @@ public class ConvertUtil {
public static CommentQo commentEntity2Qo(CommentEntity entity) {
CommentQo qo = new CommentQo();
BeanUtils.copyProperties(entity, qo);
qo.setContent(OtherUtil.blockPhoneAndEmail(entity.getContent()));
qo.setUpdateTime(TimeUtils.getTimestampOfDateTime(entity.getUpdateTime()));
return qo;
}
......@@ -279,13 +281,13 @@ public class ConvertUtil {
themeNotifyQo.setFormerThemeId(entity.getTargetId());
themeNotifyQo.setFormerUserName(entity.getNotifiedUserId());
if (!StringUtils.isEmpty(entity.getContent())) {
try{
try {
NotificationForwardDO forwardDO = JsonUtil.toBean(entity.getContent(), NotificationForwardDO.class);
themeNotifyQo.setContent(forwardDO.getContent());
themeNotifyQo.setTopicId(forwardDO.getTopicId());
themeNotifyQo.setForwardThemeId(forwardDO.getThemeId());
}catch (Exception e){
throw new BizException("消息通知-转发类型-反序列化异常:"+ entity.getContent());
} catch (Exception e) {
throw new BizException("消息通知-转发类型-反序列化异常:" + entity.getContent());
}
}
}
......@@ -298,10 +300,10 @@ public class ConvertUtil {
NotificationLikeDO notificationLikeDO = JsonUtil.toBean(entity.getContent(), NotificationLikeDO.class);
themeNotifyQo.setLikeUserCount(notificationLikeDO.getCount());
ArrayList<UserBriefInfoQO> likeUsers = new ArrayList<>();
notificationLikeDO.getSet().stream().forEach(o->likeUsers.add(UserBriefInfoQO.builder().userId(o).build()));
notificationLikeDO.getSet().stream().forEach(o -> likeUsers.add(UserBriefInfoQO.builder().userId(o).build()));
themeNotifyQo.setLikeUsers(likeUsers);
}catch (Exception e){
throw new BizException("消息通知-点赞类型-反序列化异常:"+ entity.getContent());
} catch (Exception e) {
throw new BizException("消息通知-点赞类型-反序列化异常:" + entity.getContent());
}
}
}
......
package com.tanpu.community.util;
import org.apache.commons.lang3.StringUtils;
import javax.servlet.http.HttpServletRequest;
public class OtherUtil {
private final static String numberPattern = "^[0-9]*[1-9][0-9]*$";
private final static String phonePattern = "(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9])\\d{8}";
private final static String emailPattern = "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.com";
public static String getRequestUrl(HttpServletRequest request) {
String s = request.getRequestURL().toString();
String querystr = request.getQueryString();
if (StringUtils.isNotEmpty(querystr)) {
s = s + "?" + querystr;
}
return s;
}
public static String blockPhoneAndEmail(String line) {
// 屏蔽邮箱
line = line.replaceAll(emailPattern,"*@*.com");
// 屏蔽手机号
line = line.replaceAll(phonePattern,"**********");
return line;
}
/**
* 脱敏手机号
*
* @param mobile
* @return
*/
public static String formatMobile(String mobile) {
if (StringUtils.isNotBlank(mobile)) {
mobile = mobile.replaceAll("(\\w{3})\\w*(\\w{4})", "$1****$2");
}
return mobile;
}
public static void main(String[] args) {
System.out.println(OtherUtil.blockPhoneAndEmail("我的手机号是18621088081!,邮箱是123@qq.com。"));
}
}
......@@ -15,7 +15,7 @@ server:
spring.datasource:
community:
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://rm-uf6r22t3d798q4kmk.mysql.rds.aliyuncs.com:3306/tamp_community?useUnicode=true&characterEncoding=utf-8&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
jdbc-url: jdbc:mysql://rm-uf6r22t3d798q4kmkao.mysql.rds.aliyuncs.com:3306/tamp_community?useUnicode=true&characterEncoding=utf-8&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
username: tamp_admin
password: '@imeng123'
maxActive: 2
......@@ -113,4 +113,16 @@ tanpu:
zhibo:
svc: https://testtamper.tanpuyun.com
diagnose:
svc: https://testtamper.tanpuyun.com
\ No newline at end of file
svc: https://testtamper.tanpuyun.com
#打印SQL语句
logging:
level:
com.tanpu.community.dao: debug
org.springframework.jdbc.core.JdbcTemplate: debug
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tanpu.community.dao.mapper.community.HotRecommendMapper">
<resultMap id="BaseResultMap" type="com.tanpu.community.dao.entity.community.HotRecommend">
<!--@mbg.generated-->
<!--@Table hot_recommend-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="hot_recommend_id" jdbcType="VARCHAR" property="hotRecommendId" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="type" jdbcType="INTEGER" property="type" />
<result column="is_show" jdbcType="INTEGER" property="isShow" />
<result column="sort" jdbcType="INTEGER" property="sort" />
<result column="delete_tag" jdbcType="INTEGER" property="deleteTag" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, hot_recommend_id, `name`, `type`, is_show, sort, delete_tag, create_time, create_by
</sql>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tanpu.community.dao.mapper.community.HotRecommendUserMapper">
<resultMap id="BaseResultMap" type="com.tanpu.community.dao.entity.community.HotRecommendUser">
<!--@mbg.generated-->
<!--@Table hot_recommend_user-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="rel_id" jdbcType="VARCHAR" property="relId" />
<result column="is_exclude" jdbcType="INTEGER" property="isExclude" />
<result column="hot_recommend_id" jdbcType="VARCHAR" property="hotRecommendId" />
<result column="delete_tag" jdbcType="INTEGER" property="deleteTag" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, rel_id, is_exclude, hot_recommend_id, delete_tag
</sql>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment