linhw 2024-04-25 13:37:58 +08:00
parent 6d5f0874bb
commit 6d667b4f79
8 changed files with 171 additions and 2 deletions

View File

@ -4,6 +4,7 @@ import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.app.domain.vo.AppUserDynamicVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@ -52,6 +53,15 @@ public class AppUserDynamicController extends BaseController
return getDataTable(list);
}
@RequiresPermissions("app:dynamic:list")
@GetMapping("/pageList")
@ApiOperation(value = "分页app用户动态列表", notes = "分页app用户动态列表", httpMethod = "GET")
public TableDataInfo pageList(AppUserDynamic appUserDynamic) {
startPage();
List<AppUserDynamicVo> list = appUserDynamicService.selectDynamicList(appUserDynamic);
return getDataTable(list);
}
/**
* App
*/

View File

@ -0,0 +1,81 @@
package com.ruoyi.app.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.app.domain.AppDynamicImg;
import com.ruoyi.app.domain.AppTopic;
import com.ruoyi.app.domain.AppUserDynamic;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* App app_user_dynamic
*
* @author wyh
* @date 2024-04-23
*/
@Data
public class AppUserDynamicVo extends AppUserDynamic
{
private static final long serialVersionUID = 1L;
private String username;
private String avatarUrl;
@Excel(name = "学历")
private String education;
@Excel(name = "学校")
private Long school;
@Excel(name = "专业")
private String major;
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "学历开始时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "学历结束时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date endTime;
private int countLike;
private int countComment;
// 是否会员0是1否
private int isMember;
// 话题
private List<AppTopic> appTopicList = new ArrayList<>();
// 图片列表
private List<AppDynamicImg> appDynamicImgs = new ArrayList<>();
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("userId", getUserId())
.append("content", getContent())
.append("videoUrl", getVideoUrl())
.append("topicId", getTopicId())
.append("address", getAddress())
.append("privacyStatus", getPrivacyStatus())
.append("remark", getRemark())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.append("createBy", getCreateBy())
.append("updateBy", getUpdateBy())
.append("imgUrls", getImgUrls())
.append("isTop", getIsTop())
.toString();
}
}

View File

@ -26,6 +26,7 @@ public interface AppTopicMapper
* @return
*/
public List<AppTopic> selectAppTopicList(AppTopic appTopic);
public List<AppTopic> selectByIdsList(List<Long> ids);
/**
*

View File

@ -2,6 +2,7 @@ package com.ruoyi.app.mapper;
import java.util.List;
import com.ruoyi.app.domain.AppUserDynamic;
import com.ruoyi.app.domain.vo.AppUserDynamicVo;
/**
* AppMapper
@ -26,6 +27,7 @@ public interface AppUserDynamicMapper
* @return App
*/
public List<AppUserDynamic> selectAppUserDynamicList(AppUserDynamic appUserDynamic);
public List<AppUserDynamicVo> selectDynamicList(AppUserDynamic appUserDynamic);
/**
* App

View File

@ -2,6 +2,7 @@ package com.ruoyi.app.service;
import java.util.List;
import com.ruoyi.app.domain.AppUserDynamic;
import com.ruoyi.app.domain.vo.AppUserDynamicVo;
/**
* AppService
@ -26,6 +27,7 @@ public interface IAppUserDynamicService
* @return App
*/
public List<AppUserDynamic> selectAppUserDynamicList(AppUserDynamic appUserDynamic);
public List<AppUserDynamicVo> selectDynamicList(AppUserDynamic appUserDynamic);
/**
* App

View File

@ -3,13 +3,15 @@ package com.ruoyi.app.service.impl;
import java.util.Arrays;
import java.util.List;
import com.ruoyi.app.domain.AppDynamicComment;
import com.ruoyi.app.domain.AppDynamicImg;
import com.ruoyi.app.mapper.AppDynamicImgMapper;
import com.ruoyi.app.domain.AppDynamicLike;
import com.ruoyi.app.domain.vo.AppUserDynamicVo;
import com.ruoyi.app.mapper.*;
import com.ruoyi.common.core.utils.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.app.mapper.AppUserDynamicMapper;
import com.ruoyi.app.domain.AppUserDynamic;
import com.ruoyi.app.service.IAppUserDynamicService;
@ -28,6 +30,15 @@ public class AppUserDynamicServiceImpl implements IAppUserDynamicService
@Autowired
private AppDynamicImgMapper appDynamicImgMapper;
@Autowired
private AppDynamicLikeMapper appDynamicLikeMapper;
@Autowired
private AppDynamicCommentMapper appDynamicCommentMapper;
@Autowired
private AppTopicMapper appTopicMapper;
/**
* App
*
@ -124,4 +135,30 @@ public class AppUserDynamicServiceImpl implements IAppUserDynamicService
appDynamicImgMapper.deleteAppDynamicImgByDynamicId(id);
return appUserDynamicMapper.deleteAppUserDynamicById(id);
}
@Override
public List<AppUserDynamicVo> selectDynamicList(AppUserDynamic appUserDynamic) {
List<AppUserDynamicVo> list = appUserDynamicMapper.selectDynamicList(appUserDynamic);
for (AppUserDynamicVo appUserDynamicVo : list) {
Long id = appUserDynamicVo.getId();
// 图片信息
AppDynamicImg appDynamicImg = new AppDynamicImg();
appDynamicImg.setUserDynamicId(id);
appUserDynamicVo.setAppDynamicImgs(appDynamicImgMapper.selectAppDynamicImgList(appDynamicImg));
// 话题信息
if (StringUtils.isNotBlank(appUserDynamicVo.getTopicId())) {
List ids = Arrays.asList(appUserDynamicVo.getTopicId().split(","));
appUserDynamicVo.setAppTopicList(appTopicMapper.selectByIdsList(ids));
}
// 点赞数
AppDynamicLike appDynamicLike = new AppDynamicLike();
appDynamicLike.setDynamicId(id);
appUserDynamicVo.setCountLike(appDynamicLikeMapper.selectAppDynamicLikeList(appDynamicLike).size());
// 评论数
AppDynamicComment appDynamicComment = new AppDynamicComment();
appDynamicComment.setDynamicId(id);
appUserDynamicVo.setCountComment(appDynamicCommentMapper.selectAppDynamicCommentList(appDynamicComment).size());
}
return appUserDynamicMapper.selectDynamicList(appUserDynamic);
}
}

View File

@ -25,6 +25,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null and updateBy != ''"> and updateBy = #{updateBy}</if>
</where>
</select>
<select id="selectByIdsList" resultMap="AppTopicResult">
<include refid="selectAppTopicVo"/>
<where>
<if test="ids != null">
and id in
<foreach collection="ids" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</select>
<select id="selectAppTopicById" parameterType="Long" resultMap="AppTopicResult">
<include refid="selectAppTopicVo"/>

View File

@ -37,6 +37,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="isTop != null "> and is_top = #{isTop}</if>
</where>
</select>
<select id="selectDynamicList" parameterType="AppUserDynamic" resultType="com.ruoyi.app.domain.vo.AppUserDynamicVo">
select a.id as "id",a.user_id as "userId",a.content as "content",a.video_url as "videoUrl",a.topic_id as "topicId",a.address as "address",
a.privacy_status as "privacyStatus",
u.username as "username",
u.avatar_url as "avatarUrl",
u.education as "education",
u.school as "school",
u.major as "major",
u.start_time as "startTime",
u.end_time as "endTime"
from app_user_dynamic a
left join app_user u on u.id = a.user_id
<where>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="content != null and content != ''"> and content = #{content}</if>
<if test="videoUrl != null and videoUrl != ''"> and video_url = #{videoUrl}</if>
<if test="topicId != null "> and topic_id like concat('%',#{topicId},'%')</if>
<if test="address != null and address != ''"> and address = #{address}</if>
<if test="privacyStatus != null "> and privacy_status = #{privacyStatus}</if>
<if test="updateBy != null and updateBy != ''"> and updateBy = #{updateBy}</if>
<if test="isTop != null "> and is_top = #{isTop}</if>
</where>
</select>
<select id="selectAppUserDynamicById" parameterType="Long" resultMap="AppUserDynamicResult">
<include refid="selectAppUserDynamicVo"/>