Commit f1224b4e authored by 刘基明's avatar 刘基明

置頂

parent 666c52da
......@@ -12,12 +12,12 @@ import lombok.NoArgsConstructor;
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TopicAttachement {
public class TopicAttachment {
@ApiModelProperty(value = " 88:产品 300:课程包 323: 线下活动 未定:资管人")
private String type;
@ApiModelProperty(value = "对象详情")
private AttachmentDetailVo detail;
private TopicAttachmentDetail detail;
}
package com.tanpu.community.api.beans.qo;
import com.tanpu.community.api.beans.resp.CoursePackageSimpleResp;
import com.tanpu.community.api.beans.vo.feign.activity.OfflineActivitySimpleResp;
import com.tanpu.community.api.beans.vo.feign.product.FundInfoBaseResp;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "附件对象")
public class TopicAttachmentDetail {
@ApiModelProperty("产品信息")
private FundInfoBaseResp product;
@ApiModelProperty("新版课程")
private CoursePackageSimpleResp coursePackage;
@ApiModelProperty("线下活动")
private OfflineActivitySimpleResp activity;
}
......@@ -47,5 +47,5 @@ public class TopicPageDetailQo {
private String managers;
@ApiModelProperty(value = "关联产品")
private List<TopicAttachement> attachments;
private List<TopicAttachment> attachments;
}
package com.tanpu.community.api.beans.resp;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @Description 课程包列表信息
* @Author wangyalei
* @Date 2021/4/13 11:25
**/
@EqualsAndHashCode(callSuper = true)
@Data
@SuperBuilder
@ApiModel
@AllArgsConstructor
@NoArgsConstructor
public class CoursePackageSimpleResp extends Price {
@ApiModelProperty("课程包Id")
private String coursePackageId;
@ApiModelProperty("课程包标题")
private String coursePackageMainTitle;
@ApiModelProperty("课程包简介(副标题)")
private String coursePackageTwoTitle;
/**
* 1:普通课程包 2:定期更新系列课程
*/
@ApiModelProperty("课程包类型 1:普通课程包 2:定期更新系列课程")
private Integer type;
@ApiModelProperty("是否引用讲师头像 0否 1是;bgStatus=0时,直接展示squareImg;bgStatus=1时,将squareImg与bgImg叠加展示")
private Integer bgStatus;
@ApiModelProperty("方图")
private String squareImg;
@ApiModelProperty("背景图地址")
private String bgImg;
@ApiModelProperty("长图 仅系列课用")
private String lengthImg;
@ApiModelProperty("总期数")
private Integer totalNum;
@ApiModelProperty("学习人数")
private Integer readNum;
}
package com.tanpu.community.api.beans.resp;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @author: wangyalei
*
*/
@Data
@SuperBuilder(toBuilder = true)
@AllArgsConstructor
@NoArgsConstructor
public class Price {
@ApiModelProperty("资源id")
private String resId;
@ApiModelProperty("是不是白名单 0:不是 1:是白名单")
private Integer isWhite;
@ApiModelProperty("付费模式 1:免费 2:积分 3:现金")
private Integer chargeMode;
@ApiModelProperty("价格")
private String totalPrice;
@ApiModelProperty("划线价格")
private String discountPrice;
@ApiModelProperty("积分")
private String totalScore;
@ApiModelProperty("划线积分")
private String discountScore;
@ApiModelProperty("会员打折价")
private String memberDiscountPrice;
@ApiModelProperty("是否需要报名 0:不需要 1:需要")
private Integer bmStatus;
@ApiModelProperty("报名是否需要审核 0:不需要 1:需要")
private Integer signUpReviewSwitch;
@ApiModelProperty("报名是否需要填写问卷 0不需要 1需要")
private Integer isAnswer;
@ApiModelProperty("是否已报名报 0:未报名 1:已报名")
private Integer bmInfo;
@ApiModelProperty("用户报名时间戳")
private Long signedTime;
@ApiModelProperty("审批状态 0:待审批 1:通过 2:驳回")
private Integer spStatus;
@ApiModelProperty("最终可参与的会员等级")
private Integer finalLevel;
@ApiModelProperty("最终付费模式 1:免费 2:积分 3:现金")
private Integer finalChargeMode;
@ApiModelProperty("最终价格")
private String finalPrice;
@ApiModelProperty("最终积分")
private String finalScore;
@ApiModelProperty("需不需要支付 2:不需要 1:需要")
private Integer isNeedBuy;
@ApiModelProperty("有没有支付 2:已购买 1:未购买")
private Integer isBuy;
@ApiModelProperty("是否正在参与拼团活动 0不参加 1参加")
private Integer isJoinGroupBuy = 0;
}
......@@ -23,7 +23,7 @@ public class CodeAutoGenerator {
String mysqlPassword = "@imeng123";
String jdbcUrl = "jdbc:mysql://rm-uf6r22t3d798q4kmkao.mysql.rds.aliyuncs.com:3306/tamp_community";
// String[] tables = new String[]{"theme"};
String[] tables = new String[]{"theme"};
String[] tables = new String[]{"topic_subject"};
String basePackage = "com.tanpu.community";
String mapperPackage = "dao.mapper.community";
String entityPackage = "dao.entity.community";
......
package com.tanpu.community.dao.entity.community;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 话题管理员表
* </p>
*
* @author xudong
* @since 2022-02-21
*/
@TableName("topic_manager")
@ApiModel(value="TopicManagerEntity对象", description="话题管理员表")
public class TopicManagerEntity implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "话题id")
private String topicId;
@ApiModelProperty(value = "管理员用户id")
private String userId;
@ApiModelProperty(value = "创建人")
private String createBy;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTopicId() {
return topicId;
}
public void setTopicId(String topicId) {
this.topicId = topicId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return "TopicManagerEntity{" +
"id=" + id +
", topicId=" + topicId +
", userId=" + userId +
", createBy=" + createBy +
", createTime=" + createTime +
"}";
}
}
package com.tanpu.community.dao.entity.community;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 话题关联内容表
* </p>
*
* @author xudong
* @since 2022-02-21
*/
@TableName("topic_subject")
@ApiModel(value="TopicSubjectEntity对象", description="话题关联内容表")
public class TopicSubjectEntity implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "话题主键id")
private String topicId;
@ApiModelProperty(value = "关联内容id,如课程id")
private String subjectId;
@ApiModelProperty(value = "关联内容类型,88基金产品 90基金管理人 300课程 323线下活动 ")
private Integer subjectType;
@ApiModelProperty(value = "关联内容子类型 res_type=88基金产品时有值")
private Integer subjectSubType;
@ApiModelProperty(value = "创建人")
private String createBy;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTopicId() {
return topicId;
}
public void setTopicId(String topicId) {
this.topicId = topicId;
}
public String getSubjectId() {
return subjectId;
}
public void setSubjectId(String subjectId) {
this.subjectId = subjectId;
}
public Integer getSubjectType() {
return subjectType;
}
public void setSubjectType(Integer subjectType) {
this.subjectType = subjectType;
}
public Integer getSubjectSubType() {
return subjectSubType;
}
public void setSubjectSubType(Integer subjectSubType) {
this.subjectSubType = subjectSubType;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return "TopicSubjectEntity{" +
"id=" + id +
", topicId=" + topicId +
", subjectId=" + subjectId +
", subjectType=" + subjectType +
", subjectSubType=" + subjectSubType +
", createBy=" + createBy +
", createTime=" + createTime +
"}";
}
}
package com.tanpu.community.dao.mapper.community;
import com.tanpu.community.dao.entity.community.TopicManagerEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 话题管理员表 Mapper 接口
* </p>
*
* @author xudong
* @since 2022-02-21
*/
public interface TopicManagerMapper extends BaseMapper<TopicManagerEntity> {
}
package com.tanpu.community.dao.mapper.community;
import com.tanpu.community.dao.entity.community.TopicSubjectEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 话题关联内容表 Mapper 接口
* </p>
*
* @author xudong
* @since 2022-02-21
*/
public interface TopicSubjectMapper extends BaseMapper<TopicSubjectEntity> {
}
package com.tanpu.community.feign.course;
import com.tanpu.common.api.CommonResp;
import com.tanpu.community.api.beans.resp.CoursePackageSimpleResp;
import com.tanpu.community.api.beans.vo.feign.course.CourseDetailExt;
import com.tanpu.community.api.beans.vo.feign.course.CoursePackageDetail;
import com.tanpu.community.api.beans.vo.feign.course.CourseSimpleResp;
......@@ -43,6 +44,13 @@ public class FeignBackClientForCourse implements FallbackFactory<FeignClientForC
log.error("FeignClientForCourse.getStudyCourseCount-查询userid:{}", userId);
return CommonResp.failed("调用getStudyCourseCount失败");
}
@Override
public CommonResp<List<CoursePackageSimpleResp>> getCoursePackageListByUserId(List<String> ids) {
log.error("请求信息", throwable);
log.error("FeignClientForCourse.getCoursePackageSimpleRespListByUserId-查询coursePackage:{}",ids);
return CommonResp.failed("调用getStudyCourseCount失败");
}
};
}
}
package com.tanpu.community.feign.course;
import com.tanpu.common.api.CommonResp;
import com.tanpu.community.api.beans.resp.CoursePackageSimpleResp;
import com.tanpu.community.api.beans.vo.feign.course.CourseDetailExt;
import com.tanpu.community.api.beans.vo.feign.course.CoursePackageDetail;
import com.tanpu.community.api.beans.vo.feign.course.CourseSimpleResp;
......@@ -36,4 +37,9 @@ public interface FeignClientForCourse {
@ApiOperation("查询已学习课程包总数")
@GetMapping("/course/getStudyCourseCount")
CommonResp<Integer> getStudyCourseCount(@ApiParam(value = "用户id") @RequestParam(value = "userId",required = false) String userId);
@ApiOperation("课程包列表查询 含价格")
@GetMapping("/course/getCoursePackageSimpleRespList")
CommonResp<List<CoursePackageSimpleResp>> getCoursePackageListByUserId(@RequestParam("list") List<String> list);
}
......@@ -191,6 +191,8 @@ public class CommentService {
}
public void queryRecentComments(List<ThemeQo> themes) {
if (CollectionUtils.isEmpty(themes)) return;
List<String> themeIds = themes.stream().map(ThemeQo::getThemeId).collect(Collectors.toList());
List<CommentEntity> commentEntities = commentMapper.selectList(new LambdaQueryWrapper<CommentEntity>()
......@@ -206,7 +208,7 @@ public class CommentService {
for (ThemeQo theme : themes) {
if (collect.containsKey(theme.getThemeId())) {
List<CommentEntity> comments = collect.get(theme.getThemeId());
theme.setRecentComments(ConvertUtil.comment2Simple(comments,nameMap));
theme.setRecentComments(ConvertUtil.comment2Simple(comments, nameMap));
}
}
......
......@@ -2,6 +2,7 @@ package com.tanpu.community.service;
import com.tanpu.common.api.CommonResp;
import com.tanpu.common.exception.BizException;
import com.tanpu.community.api.beans.resp.CoursePackageSimpleResp;
import com.tanpu.community.api.beans.vo.feign.activity.OfflineActivitySimpleResp;
import com.tanpu.community.api.beans.vo.feign.course.CourseSimpleResp;
import com.tanpu.community.api.beans.vo.feign.course.ShortVideoBaseInfoResp;
......@@ -88,7 +89,20 @@ public class FeignService {
} else {
return new ArrayList<>();
}
}); }
});
}
public List<CoursePackageSimpleResp> getCoursePackageList(List<String> coursePackageIds) {
return batchExecute("getCoursePackageList", coursePackageIds, CoursePackageSimpleResp.class,
CoursePackageSimpleResp::getCoursePackageId, ids -> {
CommonResp<List<CoursePackageSimpleResp>> resp = feignForCourse.getCoursePackageListByUserId(ids);
if (resp.isSuccess()) {
return resp.getData();
} else {
return new ArrayList<>();
}
});
}
public List<ZhiboListResp> getZhiboSimpleList(List<String> zhiboIds) {
return batchExecute("getZhiboSimpleList_", zhiboIds, ZhiboListResp.class,
......@@ -170,7 +184,6 @@ public class FeignService {
}
private <T> List<T> batchExecute(String keyPrefix,
List<String> keys,
Class<T> clz,
......
package com.tanpu.community.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.tanpu.common.uuid.UuidGenHelper;
import com.tanpu.biz.common.enums.RelTypeEnum;
import com.tanpu.community.api.beans.qo.ThemeQo;
import com.tanpu.community.api.beans.qo.TopicAttachement;
import com.tanpu.community.api.beans.qo.TopicAttachment;
import com.tanpu.community.api.beans.qo.TopicAttachmentDetail;
import com.tanpu.community.api.beans.qo.TopicFollowQo;
import com.tanpu.community.api.beans.qo.TopicPageDetailQo;
import com.tanpu.community.api.beans.qo.TopicRankQo;
import com.tanpu.community.api.beans.resp.CoursePackageSimpleResp;
import com.tanpu.community.api.beans.vo.feign.activity.OfflineActivitySimpleResp;
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoResp;
import com.tanpu.community.api.enums.DeleteTagEnum;
import com.tanpu.community.api.enums.StatusEnum;
import com.tanpu.community.api.enums.TopicSpecialPermissionEnum;
import com.tanpu.community.dao.entity.community.TopicEntity;
import com.tanpu.community.dao.entity.community.TopicFollowRelEntity;
import com.tanpu.community.dao.entity.community.TopicManagerEntity;
import com.tanpu.community.dao.entity.community.TopicSubjectEntity;
import com.tanpu.community.dao.mapper.community.TopicFollowRelMapper;
import com.tanpu.community.dao.mapper.community.TopicManagerMapper;
import com.tanpu.community.dao.mapper.community.TopicMapper;
import com.tanpu.community.dao.mapper.community.TopicSubjectMapper;
import com.tanpu.community.util.ConvertUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -23,9 +31,9 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@Service
......@@ -39,11 +47,11 @@ public class TopicService {
TopicMapper topicMapper;
@Resource
private UuidGenHelper uuidGenHelper;
private TopicManagerMapper topicManagerMapper;
@Resource
private ThemeService themeService;
private FeignService feignService;
@Resource
private VisitLogService visitLogService;
private TopicSubjectMapper topicSubjectMapper;
public List<TopicEntity> queryAll() {
......@@ -166,14 +174,42 @@ public class TopicService {
}
public void queryAttachments(TopicPageDetailQo topic) {
TopicAttachement a1 = TopicAttachement.builder().type("88").detail(null).build();
TopicAttachement a2 = TopicAttachement.builder().type("300").detail(null).build();
TopicAttachement a3 = TopicAttachement.builder().type("323").detail(null).build();
List<TopicSubjectEntity> topicSubjectEntities = topicSubjectMapper.selectList(new LambdaQueryWrapper<TopicSubjectEntity>().eq(TopicSubjectEntity::getTopicId, topic.getTopicId()));
if (CollectionUtils.isEmpty(topicSubjectEntities)) {
topic.setAttachments(null);
}
ArrayList<TopicAttachment> attachements = new ArrayList<>();
for (TopicSubjectEntity entity : topicSubjectEntities) {
if (RelTypeEnum.FUND.type.equals(entity.getSubjectType().toString())) {
// 基金
TopicAttachment attach = TopicAttachment.builder().type(RelTypeEnum.FUND.type).detail(null).build();
attachements.add(attach);
}else if (RelTypeEnum.FUND_COMPANY.type.equals(entity.getSubjectType().toString())) {
// 资管人
TopicAttachment attach = TopicAttachment.builder().type(RelTypeEnum.FUND_COMPANY.type).detail(null).build();
attachements.add(attach);
}else if (RelTypeEnum.NEW_COURSE_WARE.type.equals(entity.getSubjectType().toString())) {
// 课程包
List<CoursePackageSimpleResp> coursePackage = feignService.getCoursePackageList(Collections.singletonList(entity.getSubjectId()));
TopicAttachmentDetail detailVo = TopicAttachmentDetail.builder().coursePackage(coursePackage.get(0)).build();
TopicAttachment attach = TopicAttachment.builder().type(RelTypeEnum.NEW_COURSE_WARE.type).detail(detailVo).build();
attachements.add(attach);
}else if (RelTypeEnum.OFFLINE_ACTIVITY.type.equals(entity.getSubjectType().toString())) {
// 线下活动
List<OfflineActivitySimpleResp> activitySimpleList = feignService.getActivitySimpleList(Collections.singletonList(entity.getSubjectId()));
TopicAttachmentDetail detailVo = TopicAttachmentDetail.builder().activity(activitySimpleList.get(0)).build();
TopicAttachment attach = TopicAttachment.builder().type(RelTypeEnum.OFFLINE_ACTIVITY.type).detail(detailVo).build();
attachements.add(attach);
}
}
topic.setAttachments(Arrays.asList(a1, a2, a3));
topic.setAttachments(attachements);
}
public boolean checkFollow(String topicId, String userId) {
if (StringUtils.isBlank(userId)) {
return false;
......@@ -191,7 +227,18 @@ public class TopicService {
}
public String getManagerId(String topicId) {
return "123";
List<TopicManagerEntity> topicManagerEntities = topicManagerMapper.selectList(new LambdaQueryWrapper<TopicManagerEntity>().eq(TopicManagerEntity::getTopicId, topicId));
List<String> managerIds = topicManagerEntities.stream().map(TopicManagerEntity::getUserId).collect(Collectors.toList());
List<UserInfoResp> userList = feignService.getUserList(managerIds);
if (CollectionUtils.isEmpty(userList)) {
return "";
}
List<String> userNames = userList.stream().map(UserInfoResp::getNickName).collect(Collectors.toList());
return StringUtils.join(userNames, "、");
}
}
<?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.TopicManagerMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.tanpu.community.dao.entity.community.TopicManagerEntity">
<id column="id" property="id" />
<result column="topic_id" property="topicId" />
<result column="user_id" property="userId" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
</resultMap>
</mapper>
<?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.TopicSubjectMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.tanpu.community.dao.entity.community.TopicSubjectEntity">
<id column="id" property="id" />
<result column="topic_id" property="topicId" />
<result column="subject_id" property="subjectId" />
<result column="subject_type" property="subjectType" />
<result column="subject_sub_type" property="subjectSubType" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
</resultMap>
</mapper>
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