提交 a5b94054 作者: xiaowang 提交者: 余乾开

小小优化

上级 16d3e183
package com.mmc.csf.release.forum.dto;
import com.mmc.csf.release.forum.vo.MediaVO;
import com.mmc.csf.release.forum.vo.UserBaseInfoVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author LW
*
* @date 2023/6/19 14:25 概要:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class DynamicInfoDTO {
@ApiModelProperty(value = "动态id")
private Integer id;
@ApiModelProperty(value = "动态描述")
private String description;
@ApiModelProperty(value = "图片/视频")
private MediaVO mediaVO;
@ApiModelProperty(value = "show: 0显示 1隐藏")
private Integer show;
@ApiModelProperty(value = "发布动态用户信息")
private UserBaseInfoVO userBaseInfo;
}
package com.mmc.csf.release.forum.qo;
import com.mmc.csf.release.model.group.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author LW
* @date 2023/6/19 11:12
* 概要:
*/
@Data
public class DynamicQO implements Serializable {
@ApiModelProperty(value = "关键字", required = true,example = "作者")
private String keyword;
@ApiModelProperty(value = "页码", required = true,example = "1")
@NotNull(message = "页码不能为空", groups = { Page.class })
@Min(value = 1, groups = Page.class)
private Integer pageNo;
@ApiModelProperty(value = "每页显示数", required = true,example = "10")
@NotNull(message = "每页显示数不能为空", groups = { Page.class })
@Min(value = 1, groups = Page.class)
private Integer pageSize;
public void buildCurrentPage() {
this.pageNo = (pageNo - 1) * pageSize;
}
}
......@@ -22,4 +22,10 @@ public class UserBaseInfoVO implements Serializable {
private String nickName;
@ApiModelProperty(value = "用户头像")
private String userImg;
@ApiModelProperty(value = "用户名称")
private String userName;
@ApiModelProperty(value = "手机号")
private String phone;
@ApiModelProperty(value = "UID")
private String uid;
}
package com.mmc.csf.release.controller;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.release.forum.dto.DynamicInfoDTO;
import com.mmc.csf.release.forum.qo.DynamicQO;
import com.mmc.csf.release.service.BackstageForumService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
/**
* @Author LW
*
* @date 2023/6/19 10:44 概要:
*/
@Api(tags = {"后台-论坛管理-模块"})
@RestController
@RequestMapping("/backstage/forum")
public class BackstageForumController {
@Autowired BackstageForumService backstageForumService;
@ApiOperation(value = "动态列表")
@PostMapping("/listDynamic")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = DynamicInfoDTO.class)})
public ResultBody<DynamicInfoDTO> listDynamic(
@RequestBody DynamicQO dynamic, HttpServletRequest request) {
return ResultBody.success(backstageForumService.listDynamic(dynamic, request));
}
}
package com.mmc.csf.release.dao;
import com.mmc.csf.release.entity.forum.ForumDynamicDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Author LW
*
* @date 2023/6/19 10:50 概要:
*/
@Mapper
public interface BackstageForumDao {
int countDynamic(@Param("ids") List<Integer> ids);
List<ForumDynamicDO> listDynamicInfo(
@Param("ids") List<Integer> ids,
@Param("pageNo") int pageNo,
@Param("pageSize") Integer pageSize);
}
package com.mmc.csf.release.dao;
import com.mmc.csf.release.entity.ForumDynamicDO;
import com.mmc.csf.release.entity.ForumImageDO;
import com.mmc.csf.release.entity.ForumVideoDO;
import com.mmc.csf.release.entity.forum.ForumDynamicDO;
import com.mmc.csf.release.entity.forum.ForumImageDO;
import com.mmc.csf.release.entity.forum.ForumVideoDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -10,113 +10,113 @@ import java.util.List;
/**
* @Author LW
* @date 2023/5/15 10:29
* 概要:动态信息数据访问层
*
* @date 2023/5/15 10:29 概要:动态信息数据访问层
*/
@Mapper
public interface DynamicDAO {
/**
* 插入动态
*
* @param forumDynamicDO 论坛动态信息
* @return {@link ForumDynamicDO}
*/
void insertDynamic(ForumDynamicDO forumDynamicDO);
/**
* 插入图片
*
* @param dynamicId 动态id
* @param url url
*/
void insertPicture(@Param("dynamicId") Integer dynamicId, @Param("url") String url);
/**
* 插入视频
*
* @param dynamicId 动态id
* @param videoUrl 视频网址
*/
void insertVideo(@Param("dynamicId") Integer dynamicId, @Param("videoUrl") String videoUrl);
/**
* 更新动态点赞数量
*
* @param dynamicId 动态id
* @param pid pid
*/
void updateDynamicLikeCount(@Param("dynamicId") Integer dynamicId, @Param("pid") Integer pid);
/**
* 得到动态信息
*
* @param dynamicId 动态id
* @return {@link ForumDynamicDO}
*/
ForumDynamicDO getDynamicInfo(Integer dynamicId);
/**
* 动态点赞数减
*
* @param dynamicId 动态id
* @param pid pid
*/
void updateSubDynamicLikeCount(Integer dynamicId, Integer pid);
/**
* 更新动态评论数
*
* @param dynamicId 动态id
* @param pid pid
*/
void updateDynamicCommentCount(Integer dynamicId, Integer pid);
/**
* 动态列表计数
*
* @return int
*/
int countDynamicList();
/**
* 动态列表
*
* @param itemIndex 项指数
* @param pageSize 页面大小
* @return {@link List}<{@link ForumDynamicDO}>
*/
List<ForumDynamicDO> dynamicList(int itemIndex, Integer pageSize);
/**
* 列表动态图片
*
* @param ids id
* @return {@link List}<{@link ForumImageDO}>
*/
List<ForumImageDO> listDynamicPicture(List<Integer> ids);
/**
* 动态视频列表
*
* @param ids id
* @return {@link List}<{@link ForumVideoDO}>
*/
List<ForumVideoDO> listDynamicVideo(List<Integer> ids);
/**
* 动态图片
*
* @param dynamicId 动态id
* @return {@link List}<{@link ForumImageDO}>
*/
List<ForumImageDO> dynamicPicture(Integer dynamicId);
/**
* 动态视频
*
* @param dynamicId 动态id
* @return {@link ForumVideoDO}
*/
ForumVideoDO dynamicVideo(Integer dynamicId);
/**
* 插入动态
*
* @param forumDynamicDO 论坛动态信息
* @return {@link ForumDynamicDO}
*/
void insertDynamic(ForumDynamicDO forumDynamicDO);
/**
* 插入图片
*
* @param dynamicId 动态id
* @param url url
*/
void insertPicture(@Param("dynamicId") Integer dynamicId, @Param("url") String url);
/**
* 插入视频
*
* @param dynamicId 动态id
* @param videoUrl 视频网址
*/
void insertVideo(@Param("dynamicId") Integer dynamicId, @Param("videoUrl") String videoUrl);
/**
* 更新动态点赞数量
*
* @param dynamicId 动态id
* @param pid pid
*/
void updateDynamicLikeCount(@Param("dynamicId") Integer dynamicId, @Param("pid") Integer pid);
/**
* 得到动态信息
*
* @param dynamicId 动态id
* @return {@link ForumDynamicDO}
*/
ForumDynamicDO getDynamicInfo(Integer dynamicId);
/**
* 动态点赞数减
*
* @param dynamicId 动态id
* @param pid pid
*/
void updateSubDynamicLikeCount(Integer dynamicId, Integer pid);
/**
* 更新动态评论数
*
* @param dynamicId 动态id
* @param pid pid
*/
void updateDynamicCommentCount(Integer dynamicId, Integer pid);
/**
* 动态列表计数
*
* @return int
*/
int countDynamicList();
/**
* 动态列表
*
* @param itemIndex 项指数
* @param pageSize 页面大小
* @return {@link List}<{@link ForumDynamicDO}>
*/
List<ForumDynamicDO> dynamicList(int itemIndex, Integer pageSize);
/**
* 列表动态图片
*
* @param ids id
* @return {@link List}<{@link ForumImageDO}>
*/
List<ForumImageDO> listDynamicPicture(List<Integer> ids);
/**
* 动态视频列表
*
* @param ids id
* @return {@link List}<{@link ForumVideoDO}>
*/
List<ForumVideoDO> listDynamicVideo(List<Integer> ids);
/**
* 动态图片
*
* @param dynamicId 动态id
* @return {@link List}<{@link ForumImageDO}>
*/
List<ForumImageDO> dynamicPicture(Integer dynamicId);
/**
* 动态视频
*
* @param dynamicId 动态id
* @return {@link ForumVideoDO}
*/
ForumVideoDO dynamicVideo(Integer dynamicId);
}
package com.mmc.csf.release.dao;
import com.mmc.csf.release.entity.ForumDynamicDO;
import com.mmc.csf.release.entity.forum.ForumDynamicDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -9,45 +8,45 @@ import java.util.List;
/**
* @Author LW
* @date 2023/5/15 10:29
* 概要:点赞信息数据访问层
*
* @date 2023/5/15 10:29 概要:点赞信息数据访问层
*/
@Mapper
public interface LikeDAO {
/**
* 插入点赞信息
*
* @param userId 用户id
* @param dynamicId 动态id
*/
void insertLike(@Param("userId") int userId, @Param("dynamicId") int dynamicId);
/**
* 删除点赞信息
*
* @param userId 用户id
* @param dynamicId 动态id
* @return int
*/
int deleteLike(@Param("userId") int userId, @Param("dynamicId") int dynamicId);
/**
* 是否是点赞过的
*
* @param userId 用户id
* @param dynamicId 动态id
* @return boolean
*/
boolean isLiked(@Param("userId") int userId, @Param("dynamicId") int dynamicId);
/**
* 点赞数
*
* @param dynamicId 动态id
* @return int
*/
int getLikesCount(int dynamicId);
List<ForumDynamicDO> selectLiked(Integer userId, List<Integer> ids);
/**
* 插入点赞信息
*
* @param userId 用户id
* @param dynamicId 动态id
*/
void insertLike(@Param("userId") int userId, @Param("dynamicId") int dynamicId);
/**
* 删除点赞信息
*
* @param userId 用户id
* @param dynamicId 动态id
* @return int
*/
int deleteLike(@Param("userId") int userId, @Param("dynamicId") int dynamicId);
/**
* 是否是点赞过的
*
* @param userId 用户id
* @param dynamicId 动态id
* @return boolean
*/
boolean isLiked(@Param("userId") int userId, @Param("dynamicId") int dynamicId);
/**
* 点赞数
*
* @param dynamicId 动态id
* @return int
*/
int getLikesCount(int dynamicId);
List<ForumDynamicDO> selectLiked(Integer userId, List<Integer> ids);
}
package com.mmc.csf.release.dao;
import com.mmc.csf.release.entity.DummyFlyerDO;
import com.mmc.csf.release.entity.DummyUavDO;
import com.mmc.csf.release.entity.MaintainDO;
import com.mmc.csf.release.entity.WebsiteInfoDO;
import com.mmc.csf.release.entity.store.DummyFlyerDO;
import com.mmc.csf.release.entity.store.DummyUavDO;
import com.mmc.csf.release.entity.store.MaintainDO;
import com.mmc.csf.release.entity.store.WebsiteInfoDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Author LW
* @date 2022/4/21 19:21
* 概要:
*
* @date 2022/4/21 19:21 概要:
*/
@Mapper
public interface WebsiteDao {
int countDummyFlyer();
List<DummyFlyerDO> listDummyFlyer(Double lon, Double lat, Integer pageNo, Integer pageSize);
int countDummyFlyer();
int countDummyUav();
List<DummyFlyerDO> listDummyFlyer(Double lon, Double lat, Integer pageNo, Integer pageSize);
List<DummyUavDO> listDummyUav(Double lon, Double lat, Integer pageNo, Integer pageSize);
int countDummyUav();
int countMaintain();
List<DummyUavDO> listDummyUav(Double lon, Double lat, Integer pageNo, Integer pageSize);
List<MaintainDO> listMaintain(Double lon, Double lat, Integer pageNo, Integer pageSize);
int countMaintain();
List<WebsiteInfoDO> getWebsiteList(Double lon, Double lat, Integer pageNo, Integer pageSize);
List<MaintainDO> listMaintain(Double lon, Double lat, Integer pageNo, Integer pageSize);
int countWebsiteList();
List<WebsiteInfoDO> getWebsiteList(Double lon, Double lat, Integer pageNo, Integer pageSize);
int countWebsiteList();
}
package com.mmc.csf.release.entity;
package com.mmc.csf.release.entity.forum;
import lombok.AllArgsConstructor;
import lombok.Data;
......@@ -19,38 +19,21 @@ import java.util.Date;
@NoArgsConstructor
@Accessors(chain = true)
public class ForumCommentDO implements Serializable {
private static final long serialVersionUID = 768897358613182410L;
/**
* 评论id
*/
private Integer id;
/**
* 用户id,外键,关联user表
*/
private Integer userId;
/**
* 动态id,外键,关联dynamic表
*/
private Integer dynamicId;
/**
* 评论内容
*/
private String content;
/**
* 点赞数量
*/
private Integer likesCount;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
/**
* 是否删除,0表示未删除,1表示已删除
*/
private Integer deleted;
private static final long serialVersionUID = 768897358613182410L;
/** 评论id */
private Integer id;
/** 用户id,外键,关联user表 */
private Integer userId; // todo userAccountId
/** 动态id,外键,关联dynamic表 */
private Integer dynamicId;
/** 评论内容 */
private String content;
/** 点赞数量 */
private Integer likesCount;
/** 创建时间 */
private Date createTime;
/** 修改时间 */
private Date updateTime;
/** 是否删除,0表示未删除,1表示已删除 */
private Integer deleted;
}
package com.mmc.csf.release.entity;
package com.mmc.csf.release.entity.forum;
import com.mmc.csf.release.forum.dto.DynamicInfoDTO;
import com.mmc.csf.release.forum.vo.DynamicVO;
import lombok.AllArgsConstructor;
import lombok.Data;
......@@ -21,73 +22,57 @@ import java.util.Date;
@NoArgsConstructor
@Accessors(chain = true)
public class ForumDynamicDO implements Serializable {
private static final long serialVersionUID = 570379773690905364L;
/**
* 主键,自增长
*/
private Integer id;
/**
* 版本字段pid
*/
private Integer pid;
/**
* 动态标题
*/
private String title;
/**
* 发布用户ID
*/
private Integer userId;
/**
* 动态描述
*/
private String description;
/**
* 发布动态具体位置
*/
private String location;
/**
* 发布动态纬度
*/
private BigDecimal lat;
/**
* 发布动态经度
*/
private BigDecimal lon;
/**
* 点赞数
*/
private Integer likesCount;
/**
* 评论数
*/
private Integer commentsCount;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
/**
* 是否删除,默认为0表示未删除
*/
private Integer deleted;
private static final long serialVersionUID = 570379773690905364L;
/** 主键,自增长 */
private Integer id;
/** 版本字段pid */
private Integer pid; // todo 修改为 version
/** 动态标题 */
private String title; // todo 删除
/** 发布用户ID */
private Integer userId; // todo 改userAccountId
/** 动态描述 */
private String description;
/** 发布动态具体位置 */
private String location;
/** 发布动态纬度 */
private BigDecimal lat;
/** 发布动态经度 */
private BigDecimal lon;
/** 点赞数 */
private Integer likesCount;
/** 评论数 */
private Integer commentsCount;
/** 创建时间 */
private Date createTime;
/** 修改时间 */
private Date updateTime;
/** 是否删除,默认为0表示未删除 */
private Integer deleted;
public ForumDynamicDO(DynamicVO dynamicVO) {
this.title = dynamicVO.getTitle();
this.description = dynamicVO.getDescription();
this.location = dynamicVO.getLocation();
this.lat = dynamicVO.getLat();
this.lon = dynamicVO.getLon();
}
public ForumDynamicDO(DynamicVO dynamicVO) {
this.title = dynamicVO.getTitle();
this.description = dynamicVO.getDescription();
this.location = dynamicVO.getLocation();
this.lat = dynamicVO.getLat();
this.lon = dynamicVO.getLon();
}
public DynamicVO buildDynamicVO() {
return DynamicVO.builder().id(id).description(description)
.commentCount(commentsCount).likesCount(likesCount)
.lat(lat).lon(lon).location(location).title(title)
.dynamicPublishTime(createTime).build();
}
}
public DynamicVO buildDynamicVO() {
return DynamicVO.builder()
.id(id)
.description(description)
.commentCount(commentsCount)
.likesCount(likesCount)
.lat(lat)
.lon(lon)
.location(location)
.title(title)
.dynamicPublishTime(createTime)
.build();
}
public DynamicInfoDTO buildDynamicInfoDTO() {
return DynamicInfoDTO.builder().id(id).description(description).show(deleted).build();
}
}
package com.mmc.csf.release.entity;
package com.mmc.csf.release.entity.forum;
import lombok.AllArgsConstructor;
import lombok.Data;
......@@ -19,31 +19,17 @@ import java.util.Date;
@NoArgsConstructor
@Accessors(chain = true)
public class ForumImageDO implements Serializable {
private static final long serialVersionUID = 678578415154893126L;
/**
* 主键,自增长
*/
private Integer id;
/**
* 动态ID,必填
*/
private Integer dynamicId;
/**
* 图片URL,必填
*/
private String url;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
/**
* 是否删除,默认为0表示未删除
*/
private Integer deleted;
private static final long serialVersionUID = 678578415154893126L;
/** 主键,自增长 */
private Integer id; // todo 删除
/** 动态ID,必填 */
private Integer dynamicId;
/** 图片URL,必填 */
private String url;
/** 创建时间 */
private Date createTime;
/** 修改时间 */
private Date updateTime;
/** 是否删除,默认为0表示未删除 */
private Integer deleted; // todo 删除
}
package com.mmc.csf.release.entity;
package com.mmc.csf.release.entity.forum;
import lombok.AllArgsConstructor;
import lombok.Data;
......@@ -19,23 +19,13 @@ import java.util.Date;
@NoArgsConstructor
@Accessors(chain = true)
public class ForumLikeDO implements Serializable {
private static final long serialVersionUID = 980171641026737097L;
/**
* 点赞id
*/
private Integer id;
/**
* 用户id,外键,关联user表
*/
private Integer userId;
/**
* 动态id,外键,关联dynamic表
*/
private Integer dynamicId;
/**
* 创建时间
*/
private Date createTime;
private static final long serialVersionUID = 980171641026737097L;
/** 点赞id */
private Integer id;
/** 用户id,外键,关联user表 */
private Integer userId;
/** 动态id,外键,关联dynamic表 */
private Integer dynamicId;
/** 创建时间 */
private Date createTime;
}
package com.mmc.csf.release.entity;
package com.mmc.csf.release.entity.forum;
import lombok.AllArgsConstructor;
import lombok.Data;
......@@ -19,31 +19,17 @@ import java.util.Date;
@NoArgsConstructor
@Accessors(chain = true)
public class ForumVideoDO implements Serializable {
private static final long serialVersionUID = -50745508548714291L;
/**
* 主键,自增长
*/
private Integer id;
/**
* 动态ID,必填
*/
private Integer dynamicId;
/**
* 视频URL,必填
*/
private String url;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
/**
* 是否删除,默认为0表示未删除
*/
private Integer deleted;
private static final long serialVersionUID = -50745508548714291L;
/** 主键,自增长 */
private Integer id;
/** 动态ID,必填 */
private Integer dynamicId;
/** 视频URL,必填 */
private String url;
/** 创建时间 */
private Date createTime;
/** 修改时间 */
private Date updateTime;
/** 是否删除,默认为0表示未删除 */
private Integer deleted;
}
package com.mmc.csf.release.entity;
package com.mmc.csf.release.entity.store;
import com.mmc.csf.web.dto.DummyFlyerDTO;
import lombok.AllArgsConstructor;
......
package com.mmc.csf.release.entity;
package com.mmc.csf.release.entity.store;
import com.mmc.csf.web.dto.DummyUavDTO;
import lombok.AllArgsConstructor;
......
package com.mmc.csf.release.entity;
package com.mmc.csf.release.entity.store;
import com.mmc.csf.web.dto.MaintainDTO;
import lombok.AllArgsConstructor;
......@@ -18,26 +18,32 @@ import java.math.BigDecimal;
@AllArgsConstructor
@NoArgsConstructor
public class MaintainDO implements Serializable {
private static final long serialVersionUID = -53401640557659711L;
private Integer id;
private String name;
private String address;
private Double lon;
private Double lat;
private static final long serialVersionUID = -53401640557659711L;
private Double distance;
private Integer id;
private String name;
private String address;
public MaintainDTO buildMaintainDTO() {
this.distance = this.distance == null ? 0 : (BigDecimal.valueOf(this.distance).setScale(2, BigDecimal.ROUND_HALF_DOWN)).doubleValue();
return MaintainDTO.builder().name(name).address(address).lon(this.lon).lat(this.lat).distance(this.distance / 1000).build();
}
private Double lon;
}
private Double lat;
private Double distance;
public MaintainDTO buildMaintainDTO() {
this.distance =
this.distance == null
? 0
: (BigDecimal.valueOf(this.distance).setScale(2, BigDecimal.ROUND_HALF_DOWN))
.doubleValue();
return MaintainDTO.builder()
.name(name)
.address(address)
.lon(this.lon)
.lat(this.lat)
.distance(this.distance / 1000)
.build();
}
}
package com.mmc.csf.release.entity;
package com.mmc.csf.release.entity.store;
import com.mmc.csf.web.dto.WebsiteRangeDTO;
import lombok.AllArgsConstructor;
......@@ -10,23 +10,32 @@ import java.math.BigDecimal;
/**
* @Author LW
* @date 2022/4/21 20:09
* 概要:
*
* @date 2022/4/21 20:09 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class WebsiteInfoDO implements Serializable {
private Integer id;
private String name;
private String address;
private Double lat;
private Double lon;
private Double distance;
private Integer id;
private String name;
private String address;
private Double lat;
private Double lon;
private Double distance;
public WebsiteRangeDTO buildWebsiteRangeDTO() {
this.distance = this.distance == null ? 0 : (BigDecimal.valueOf(this.distance).setScale(2, BigDecimal.ROUND_HALF_DOWN)).doubleValue();
return WebsiteRangeDTO.builder().name(name).address(address).lon(this.lon).lat(this.lat).distance(this.distance / 1000).build();
}
public WebsiteRangeDTO buildWebsiteRangeDTO() {
this.distance =
this.distance == null
? 0
: (BigDecimal.valueOf(this.distance).setScale(2, BigDecimal.ROUND_HALF_DOWN))
.doubleValue();
return WebsiteRangeDTO.builder()
.name(name)
.address(address)
.lon(this.lon)
.lat(this.lat)
.distance(this.distance / 1000)
.build();
}
}
package com.mmc.csf.release.service;
import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.release.forum.qo.DynamicQO;
import javax.servlet.http.HttpServletRequest;
/**
* @Author LW
*
* @date 2023/6/19 10:47 概要:
*/
public interface BackstageForumService {
PageResult listDynamic(DynamicQO dynamic, HttpServletRequest request);
}
package com.mmc.csf.release.service.impl;
import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.infomation.dto.UserAccountSimpleDTO;
import com.mmc.csf.release.auth.qo.BUserAccountQO;
import com.mmc.csf.release.constant.TokenConstant;
import com.mmc.csf.release.dao.BackstageForumDao;
import com.mmc.csf.release.dao.DynamicDAO;
import com.mmc.csf.release.entity.forum.ForumDynamicDO;
import com.mmc.csf.release.entity.forum.ForumImageDO;
import com.mmc.csf.release.entity.forum.ForumVideoDO;
import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.forum.dto.DynamicInfoDTO;
import com.mmc.csf.release.forum.qo.DynamicQO;
import com.mmc.csf.release.forum.vo.MediaVO;
import com.mmc.csf.release.forum.vo.UserBaseInfoVO;
import com.mmc.csf.release.service.BackstageForumService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @Author LW
*
* @date 2023/6/19 10:47 概要:
*/
@Service
public class BackstageForumServiceImpl implements BackstageForumService {
@Autowired BackstageForumDao backstageForumDao;
@Autowired DynamicDAO dynamicDAO;
@Autowired UserAppApi userAppApi;
@Override
public PageResult listDynamic(DynamicQO dynamic, HttpServletRequest request) {
List<Integer> userIds = null;
if (dynamic.getKeyword() != null) {
BUserAccountQO bUserAccountQO = new BUserAccountQO();
bUserAccountQO.setKeyword(dynamic.getKeyword());
// 获取筛选的用户id
List<UserAccountSimpleDTO> userAccountSimpleDTOS =
userAppApi.feignListBAccountPage(bUserAccountQO, request.getHeader(TokenConstant.TOKEN));
if (CollectionUtils.isNotEmpty(userAccountSimpleDTOS)) {
// 获取用户id
userIds =
userAccountSimpleDTOS.stream()
.map(UserAccountSimpleDTO::getId)
.collect(Collectors.toList());
}
if (userIds == null) {
return PageResult.buildPage(dynamic.getPageNo(), dynamic.getPageSize(), 0);
}
}
int count = backstageForumDao.countDynamic(userIds);
if (count == 0) {
return PageResult.buildPage(dynamic.getPageNo(), dynamic.getPageSize(), count);
}
int itemIndex = (dynamic.getPageNo() - 1) * dynamic.getPageSize();
// 获取动态信息
List<ForumDynamicDO> dynamicList =
backstageForumDao.listDynamicInfo(userIds, itemIndex, dynamic.getPageSize());
// 动态id集合
List<Integer> ids =
dynamicList.stream().map(ForumDynamicDO::getId).collect(Collectors.toList());
// 根据id集合查询图片
List<ForumImageDO> forumImageList = dynamicDAO.listDynamicPicture(ids);
Map<Integer, List<ForumImageDO>> ImageMap =
forumImageList.stream().collect(Collectors.groupingBy(ForumImageDO::getDynamicId));
// 获取视频信息
List<ForumVideoDO> forumVideoList = dynamicDAO.listDynamicVideo(ids);
// 获取查询到的列表用户信息
// 获取用户信息
Set<Integer> ListUserIds =
dynamicList.stream().map(ForumDynamicDO::getUserId).collect(Collectors.toSet());
List<Integer> userIdList = new ArrayList<>(ListUserIds);
BUserAccountQO accountQO = new BUserAccountQO();
accountQO.setUserIds(userIdList);
List<UserAccountSimpleDTO> userAccountSimpleList =
userAppApi.feignListBAccountPage(accountQO, request.getHeader(TokenConstant.TOKEN));
Map<Integer, UserAccountSimpleDTO> userAccountInfoMap =
userAccountSimpleList.stream()
.collect(Collectors.toMap(UserAccountSimpleDTO::getId, Function.identity()));
List<DynamicInfoDTO> list =
dynamicList.stream()
.map(
d -> {
DynamicInfoDTO dynamicInfoDTO = d.buildDynamicInfoDTO();
MediaVO mediaVO = new MediaVO();
if (CollectionUtils.isNotEmpty(ImageMap.get(d.getId()))) {
mediaVO.setPicture(
ImageMap.get(d.getId()).stream()
.map(ForumImageDO::getUrl)
.collect(Collectors.toList()));
}
for (ForumVideoDO forumVideoDO : forumVideoList) {
if (forumVideoDO.getDynamicId().equals(d.getId())) {
mediaVO.setVideoUrl(forumVideoDO.getUrl());
break;
}
}
UserAccountSimpleDTO userAccountSimpleDTO = userAccountInfoMap.get(d.getUserId());
if (userAccountSimpleDTO != null) {
UserBaseInfoVO userBaseInfoVO = new UserBaseInfoVO();
userBaseInfoVO.setId(d.getUserId());
userBaseInfoVO.setNickName(userAccountSimpleDTO.getNickName());
userBaseInfoVO.setUserImg(userAccountSimpleDTO.getUserImg());
userBaseInfoVO.setUserName(userAccountSimpleDTO.getUserName());
userBaseInfoVO.setPhone(userAccountSimpleDTO.getPhoneNum());
userBaseInfoVO.setUid(userAccountSimpleDTO.getUid());
dynamicInfoDTO.setUserBaseInfo(userBaseInfoVO);
}
dynamicInfoDTO.setMediaVO(mediaVO);
return dynamicInfoDTO;
})
.collect(Collectors.toList());
return PageResult.buildPage(dynamic.getPageNo(), dynamic.getPageSize(), count, list);
}
}
......@@ -8,9 +8,9 @@ import com.mmc.csf.release.constant.TokenConstant;
import com.mmc.csf.release.dao.CommentDAO;
import com.mmc.csf.release.dao.DynamicDAO;
import com.mmc.csf.release.dao.LikeDAO;
import com.mmc.csf.release.entity.ForumDynamicDO;
import com.mmc.csf.release.entity.ForumImageDO;
import com.mmc.csf.release.entity.ForumVideoDO;
import com.mmc.csf.release.entity.forum.ForumDynamicDO;
import com.mmc.csf.release.entity.forum.ForumImageDO;
import com.mmc.csf.release.entity.forum.ForumVideoDO;
import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.forum.vo.*;
import com.mmc.csf.release.service.DynamicService;
......@@ -27,201 +27,220 @@ import java.util.stream.Collectors;
/**
* @Author LW
* @date 2023/5/15 10:29
* 概要:动态信息实现层
*
* @date 2023/5/15 10:29 概要:动态信息实现层
*/
@Service
public class DynamicServiceImpl implements DynamicService {
@Resource
private DynamicDAO dynamicDAO;
@Resource
private LikeDAO likeDAO;
@Resource
private CommentDAO commentDAO;
@Autowired
private UserAppApi userAppApi;
@Resource private DynamicDAO dynamicDAO;
@Resource private LikeDAO likeDAO;
@Resource private CommentDAO commentDAO;
@Autowired private UserAppApi userAppApi;
@Override
@Transactional(rollbackFor = Exception.class)
public ResultBody insertDynamic(DynamicVO dynamicVO,Integer userAccountId) {
// 插入动态基本信息
ForumDynamicDO forumDynamicDO = new ForumDynamicDO(dynamicVO);
forumDynamicDO.setUserId(userAccountId);
dynamicDAO.insertDynamic(forumDynamicDO);
// 插入动态图片或视频
MediaVO mediaVO = dynamicVO.getMediaVO();
// 插入图片
if (CollectionUtils.isNotEmpty(mediaVO.getPicture())) {
for (String url : mediaVO.getPicture()) {
dynamicDAO.insertPicture(forumDynamicDO.getId(), url);
}
}
// 插入视频
if (mediaVO.getVideoUrl() != null) {
dynamicDAO.insertVideo(forumDynamicDO.getId(), mediaVO.getVideoUrl());
}
return ResultBody.success("动态发布成功");
@Override
@Transactional(rollbackFor = Exception.class)
public ResultBody insertDynamic(DynamicVO dynamicVO, Integer userAccountId) {
// 插入动态基本信息
ForumDynamicDO forumDynamicDO = new ForumDynamicDO(dynamicVO);
forumDynamicDO.setUserId(userAccountId);
dynamicDAO.insertDynamic(forumDynamicDO);
// 插入动态图片或视频
MediaVO mediaVO = dynamicVO.getMediaVO();
// 插入图片
if (CollectionUtils.isNotEmpty(mediaVO.getPicture())) {
for (String url : mediaVO.getPicture()) {
dynamicDAO.insertPicture(forumDynamicDO.getId(), url);
}
}
@Override
public ResultBody likeDynamic(Integer userId, Integer dynamicId) {
// 获取动态信息
ForumDynamicDO forumDynamicDO = dynamicDAO.getDynamicInfo(dynamicId);
if (!likeDAO.isLiked(userId, dynamicId)) {
likeDAO.insertLike(userId, dynamicId);
dynamicDAO.updateDynamicLikeCount(dynamicId, forumDynamicDO.getPid());
} else {
likeDAO.deleteLike(userId, dynamicId);
dynamicDAO.updateSubDynamicLikeCount(dynamicId, forumDynamicDO.getPid());
}
return ResultBody.success();
// 插入视频
if (mediaVO.getVideoUrl() != null) {
dynamicDAO.insertVideo(forumDynamicDO.getId(), mediaVO.getVideoUrl());
}
return ResultBody.success("动态发布成功");
}
@Override
@Transactional(rollbackFor = Exception.class)
public ResultBody commentDynamic(CommentVO commentVO,Integer userAccountId) {
ForumDynamicDO forumDynamicDO = dynamicDAO.getDynamicInfo(commentVO.getDynamicId());
if (forumDynamicDO == null) {
return ResultBody.error("动态不存在或已删除");
}
if (commentVO.getParentId() == null) {
commentDAO.insertComment(userAccountId, commentVO.getDynamicId(), commentVO.getContent());
} else {
commentDAO.insertReplyComment(userAccountId, commentVO.getDynamicId(), commentVO.getContent(), commentVO.getParentId());
}
dynamicDAO.updateDynamicCommentCount(commentVO.getDynamicId(), forumDynamicDO.getPid());
return ResultBody.success();
@Override
public ResultBody likeDynamic(Integer userId, Integer dynamicId) {
// 获取动态信息
ForumDynamicDO forumDynamicDO = dynamicDAO.getDynamicInfo(dynamicId);
if (!likeDAO.isLiked(userId, dynamicId)) {
likeDAO.insertLike(userId, dynamicId);
dynamicDAO.updateDynamicLikeCount(dynamicId, forumDynamicDO.getPid());
} else {
likeDAO.deleteLike(userId, dynamicId);
dynamicDAO.updateSubDynamicLikeCount(dynamicId, forumDynamicDO.getPid());
}
return ResultBody.success();
}
@Override
public ResultBody deleteComment(Integer id) {
commentDAO.deleteComment(id);
return ResultBody.success();
@Override
@Transactional(rollbackFor = Exception.class)
public ResultBody commentDynamic(CommentVO commentVO, Integer userAccountId) {
ForumDynamicDO forumDynamicDO = dynamicDAO.getDynamicInfo(commentVO.getDynamicId());
if (forumDynamicDO == null) {
return ResultBody.error("动态不存在或已删除");
}
if (commentVO.getParentId() == null) {
commentDAO.insertComment(userAccountId, commentVO.getDynamicId(), commentVO.getContent());
} else {
commentDAO.insertReplyComment(
userAccountId, commentVO.getDynamicId(), commentVO.getContent(), commentVO.getParentId());
}
dynamicDAO.updateDynamicCommentCount(commentVO.getDynamicId(), forumDynamicDO.getPid());
return ResultBody.success();
}
@Override
public ResultBody deleteComment(Integer id) {
commentDAO.deleteComment(id);
return ResultBody.success();
}
@Override
public List<CommentAndReplyVO> getCommentAndReply(Integer dynamicId, HttpServletRequest request) {
// 获取评论列表
List<CommentAndReplyVO> commentList = commentDAO.selectCommentList(dynamicId);
commentList = commentList.stream().peek(d -> {
UserAccountSimpleDTO userAccountSimpleDTO = userAppApi.feignGetUserSimpleInfo(d.getUserId(), request.getHeader(TokenConstant.TOKEN));
UserBaseInfoVO userBaseInfoVO = new UserBaseInfoVO();
userBaseInfoVO.setId(d.getUserId());
userBaseInfoVO.setNickName(userAccountSimpleDTO.getNickName());
userBaseInfoVO.setUserImg(userAccountSimpleDTO.getUserImg());
d.setUserBaseInfoVO(userBaseInfoVO);
}).collect(Collectors.toList());
List<CommentAndReplyVO> topLevelComment = new ArrayList<>();
Map<Integer, CommentAndReplyVO> commentMap = new HashMap<>();
// 将每个数据模型对象添加到Map中,以便在递归过程中查找它们的父母
for (CommentAndReplyVO comment : commentList) {
comment.setChildren(new ArrayList<>());
commentMap.put(comment.getId(), comment);
}
// 构建树结构
for (CommentAndReplyVO comment : commentList) {
if (comment.getParentId() == 0) {
topLevelComment.add(comment);
} else {
CommentAndReplyVO parent = commentMap.get(comment.getParentId());
parent.getChildren().add(comment);
}
}
return topLevelComment;
@Override
public List<CommentAndReplyVO> getCommentAndReply(Integer dynamicId, HttpServletRequest request) {
// 获取评论列表
List<CommentAndReplyVO> commentList = commentDAO.selectCommentList(dynamicId);
commentList =
commentList.stream()
.peek(
d -> {
UserAccountSimpleDTO userAccountSimpleDTO =
userAppApi.feignGetUserSimpleInfo(
d.getUserId(), request.getHeader(TokenConstant.TOKEN));
UserBaseInfoVO userBaseInfoVO = new UserBaseInfoVO();
userBaseInfoVO.setId(d.getUserId());
userBaseInfoVO.setNickName(userAccountSimpleDTO.getNickName());
userBaseInfoVO.setUserImg(userAccountSimpleDTO.getUserImg());
d.setUserBaseInfoVO(userBaseInfoVO);
})
.collect(Collectors.toList());
List<CommentAndReplyVO> topLevelComment = new ArrayList<>();
Map<Integer, CommentAndReplyVO> commentMap = new HashMap<>();
// 将每个数据模型对象添加到Map中,以便在递归过程中查找它们的父母
for (CommentAndReplyVO comment : commentList) {
comment.setChildren(new ArrayList<>());
commentMap.put(comment.getId(), comment);
}
// 构建树结构
for (CommentAndReplyVO comment : commentList) {
if (comment.getParentId() == 0) {
topLevelComment.add(comment);
} else {
CommentAndReplyVO parent = commentMap.get(comment.getParentId());
parent.getChildren().add(comment);
}
}
return topLevelComment;
}
@Override
public PageResult dynamicList(Integer pageNo, Integer pageSize, Integer userId, HttpServletRequest request) {
int count = dynamicDAO.countDynamicList();
if (count == 0) {
return PageResult.buildPage(pageNo, pageSize, 0);
}
int itemIndex = (pageNo - 1) * pageSize;
List<ForumDynamicDO> forumDynamicList = dynamicDAO.dynamicList(itemIndex, pageSize);
// 动态id集合
List<Integer> ids = forumDynamicList.stream().map(ForumDynamicDO::getId).collect(Collectors.toList());
// 根据id集合查询图片
List<ForumImageDO> forumImageList = dynamicDAO.listDynamicPicture(ids);
Map<Integer, List<ForumImageDO>> ImageMap = forumImageList.stream().collect(Collectors.groupingBy(ForumImageDO::getDynamicId));
// 获取视频信息
List<ForumVideoDO> forumVideoList = dynamicDAO.listDynamicVideo(ids);
// 获取用户信息
Set<Integer> userIds = forumDynamicList.stream().map(ForumDynamicDO::getUserId).collect(Collectors.toSet());
List<Integer> userIdList = new ArrayList<>(userIds);
BUserAccountQO bUserAccountQO = new BUserAccountQO();
bUserAccountQO.setUserIds(userIdList);
// 解决bug
List<UserAccountSimpleDTO> userAccountSimpleDTOS = userAppApi.feignListBAccountPage(bUserAccountQO, request.getHeader(TokenConstant.TOKEN));
Map<Integer, UserAccountSimpleDTO> userAccountInfoMap = userAccountSimpleDTOS.stream().collect(Collectors.toMap(UserAccountSimpleDTO::getId, Function.identity()));
//获取liked信息
List<ForumDynamicDO> forumDynamicDOS = likeDAO.selectLiked(userId, ids);
List<DynamicVO> dynamicVOList = forumDynamicList.stream()
.map(d -> {
MediaVO mediaVO = new MediaVO();
if (CollectionUtils.isNotEmpty(ImageMap.get(d.getId()))) {
mediaVO.setPicture(ImageMap.get(d.getId()).stream().map(ForumImageDO::getUrl).collect(Collectors.toList()));
}
for (ForumVideoDO forumVideoDO : forumVideoList) {
if (forumVideoDO.getDynamicId().equals(d.getId())) {
mediaVO.setVideoUrl(forumVideoDO.getUrl());
break;
}
}
DynamicVO dynamicVO = d.buildDynamicVO();
UserAccountSimpleDTO userAccountSimpleDTO = userAccountInfoMap.get(d.getUserId());
if (userAccountSimpleDTO != null){
UserBaseInfoVO userBaseInfoVO = new UserBaseInfoVO();
userBaseInfoVO.setId(d.getUserId());
userBaseInfoVO.setNickName(userAccountSimpleDTO.getNickName());
userBaseInfoVO.setUserImg(userAccountSimpleDTO.getUserImg());
dynamicVO.setUserBaseInfo(userBaseInfoVO);
@Override
public PageResult dynamicList(
Integer pageNo, Integer pageSize, Integer userId, HttpServletRequest request) {
int count = dynamicDAO.countDynamicList();
if (count == 0) {
return PageResult.buildPage(pageNo, pageSize, 0);
}
int itemIndex = (pageNo - 1) * pageSize;
List<ForumDynamicDO> forumDynamicList = dynamicDAO.dynamicList(itemIndex, pageSize);
// 动态id集合
List<Integer> ids =
forumDynamicList.stream().map(ForumDynamicDO::getId).collect(Collectors.toList());
// 根据id集合查询图片
List<ForumImageDO> forumImageList = dynamicDAO.listDynamicPicture(ids);
Map<Integer, List<ForumImageDO>> ImageMap =
forumImageList.stream().collect(Collectors.groupingBy(ForumImageDO::getDynamicId));
// 获取视频信息
List<ForumVideoDO> forumVideoList = dynamicDAO.listDynamicVideo(ids);
// 获取用户信息
Set<Integer> userIds =
forumDynamicList.stream().map(ForumDynamicDO::getUserId).collect(Collectors.toSet());
List<Integer> userIdList = new ArrayList<>(userIds);
BUserAccountQO bUserAccountQO = new BUserAccountQO();
bUserAccountQO.setUserIds(userIdList);
// 解决bug
List<UserAccountSimpleDTO> userAccountSimpleDTOS =
userAppApi.feignListBAccountPage(bUserAccountQO, request.getHeader(TokenConstant.TOKEN));
Map<Integer, UserAccountSimpleDTO> userAccountInfoMap =
userAccountSimpleDTOS.stream()
.collect(Collectors.toMap(UserAccountSimpleDTO::getId, Function.identity()));
// 获取liked信息
List<ForumDynamicDO> forumDynamicDOS = likeDAO.selectLiked(userId, ids);
List<DynamicVO> dynamicVOList =
forumDynamicList.stream()
.map(
d -> {
MediaVO mediaVO = new MediaVO();
if (CollectionUtils.isNotEmpty(ImageMap.get(d.getId()))) {
mediaVO.setPicture(
ImageMap.get(d.getId()).stream()
.map(ForumImageDO::getUrl)
.collect(Collectors.toList()));
}
for (ForumVideoDO forumVideoDO : forumVideoList) {
if (forumVideoDO.getDynamicId().equals(d.getId())) {
mediaVO.setVideoUrl(forumVideoDO.getUrl());
break;
}
dynamicVO.setMediaVO(mediaVO);
// 设置是否点赞
for (ForumDynamicDO forumDynamicDO : forumDynamicDOS) {
if (forumDynamicDO.getId().equals(d.getId())){
dynamicVO.setLikes(true);
break;
}else {
dynamicVO.setLikes(false);
}
}
DynamicVO dynamicVO = d.buildDynamicVO();
UserAccountSimpleDTO userAccountSimpleDTO = userAccountInfoMap.get(d.getUserId());
if (userAccountSimpleDTO != null) {
UserBaseInfoVO userBaseInfoVO = new UserBaseInfoVO();
userBaseInfoVO.setId(d.getUserId());
userBaseInfoVO.setNickName(userAccountSimpleDTO.getNickName());
userBaseInfoVO.setUserImg(userAccountSimpleDTO.getUserImg());
dynamicVO.setUserBaseInfo(userBaseInfoVO);
}
dynamicVO.setMediaVO(mediaVO);
// 设置是否点赞
for (ForumDynamicDO forumDynamicDO : forumDynamicDOS) {
if (forumDynamicDO.getId().equals(d.getId())) {
dynamicVO.setLikes(true);
break;
} else {
dynamicVO.setLikes(false);
}
return dynamicVO;
}).collect(Collectors.toList());
return PageResult.buildPage(pageNo, pageSize, count, dynamicVOList);
}
}
return dynamicVO;
})
.collect(Collectors.toList());
return PageResult.buildPage(pageNo, pageSize, count, dynamicVOList);
}
@Override
public ResultBody dynamicDetails(Integer dynamicId, Integer userId, HttpServletRequest request) {
// 判断此动态是否还存在
ForumDynamicDO dynamicInfo = dynamicDAO.getDynamicInfo(dynamicId);
if (dynamicInfo == null) {
return ResultBody.error("动态不存在或已删除!");
}
// 获取图片视频
List<ForumImageDO> forumImage = dynamicDAO.dynamicPicture(dynamicId);
ForumVideoDO forumVideoDO = dynamicDAO.dynamicVideo(dynamicId);
MediaVO mediaVO = new MediaVO();
if (forumVideoDO != null) {
mediaVO.setVideoUrl(forumVideoDO.getUrl());
}
if (CollectionUtils.isNotEmpty(forumImage)) {
mediaVO.setPicture(forumImage.stream().map(ForumImageDO::getUrl).collect(Collectors.toList()));
}
DynamicVO dynamicVO = dynamicInfo.buildDynamicVO();
// 设置是否点赞
boolean liked = likeDAO.isLiked(userId, dynamicId);
UserAccountSimpleDTO userAccountSimpleDTO = userAppApi.feignGetUserSimpleInfo(dynamicInfo.getUserId(), request.getHeader(TokenConstant.TOKEN));
UserBaseInfoVO userBaseInfoVO = new UserBaseInfoVO();
userBaseInfoVO.setNickName(userAccountSimpleDTO.getNickName());
userBaseInfoVO.setUserImg(userAccountSimpleDTO.getUserImg());
userBaseInfoVO.setId(dynamicInfo.getUserId());
dynamicVO.setUserBaseInfo(userBaseInfoVO);
dynamicVO.setLikes(liked);
// 设置评论信息
dynamicVO.setCommentAndReplyVO(this.getCommentAndReply(dynamicId, request));
dynamicVO.setMediaVO(mediaVO);
return ResultBody.success(dynamicVO);
@Override
public ResultBody dynamicDetails(Integer dynamicId, Integer userId, HttpServletRequest request) {
// 判断此动态是否还存在
ForumDynamicDO dynamicInfo = dynamicDAO.getDynamicInfo(dynamicId);
if (dynamicInfo == null) {
return ResultBody.error("动态不存在或已删除!");
}
// 获取图片视频
List<ForumImageDO> forumImage = dynamicDAO.dynamicPicture(dynamicId);
ForumVideoDO forumVideoDO = dynamicDAO.dynamicVideo(dynamicId);
MediaVO mediaVO = new MediaVO();
if (forumVideoDO != null) {
mediaVO.setVideoUrl(forumVideoDO.getUrl());
}
if (CollectionUtils.isNotEmpty(forumImage)) {
mediaVO.setPicture(
forumImage.stream().map(ForumImageDO::getUrl).collect(Collectors.toList()));
}
DynamicVO dynamicVO = dynamicInfo.buildDynamicVO();
// 设置是否点赞
boolean liked = likeDAO.isLiked(userId, dynamicId);
UserAccountSimpleDTO userAccountSimpleDTO =
userAppApi.feignGetUserSimpleInfo(
dynamicInfo.getUserId(), request.getHeader(TokenConstant.TOKEN));
UserBaseInfoVO userBaseInfoVO = new UserBaseInfoVO();
userBaseInfoVO.setNickName(userAccountSimpleDTO.getNickName());
userBaseInfoVO.setUserImg(userAccountSimpleDTO.getUserImg());
userBaseInfoVO.setId(dynamicInfo.getUserId());
dynamicVO.setUserBaseInfo(userBaseInfoVO);
dynamicVO.setLikes(liked);
// 设置评论信息
dynamicVO.setCommentAndReplyVO(this.getCommentAndReply(dynamicId, request));
dynamicVO.setMediaVO(mediaVO);
return ResultBody.success(dynamicVO);
}
}
......@@ -2,8 +2,8 @@ package com.mmc.csf.release.service.impl;
import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.release.dao.WebsiteDao;
import com.mmc.csf.release.entity.MaintainDO;
import com.mmc.csf.release.entity.WebsiteInfoDO;
import com.mmc.csf.release.entity.store.MaintainDO;
import com.mmc.csf.release.entity.store.WebsiteInfoDO;
import com.mmc.csf.release.service.WebsiteService;
import com.mmc.csf.web.dto.MaintainDTO;
import com.mmc.csf.web.dto.WebsiteRangeDTO;
......@@ -15,32 +15,36 @@ import java.util.stream.Collectors;
/**
* @Author LW
* @date 2022/4/21 19:19
* 概要:
*
* @date 2022/4/21 19:19 概要:
*/
@Service
public class WebsiteServiceImpl implements WebsiteService {
@Autowired
private WebsiteDao websiteDao;
@Autowired private WebsiteDao websiteDao;
@Override
public PageResult listMaintainData(Integer pageNo, Integer pageSize, Double lon, Double lat) {
int count = websiteDao.countMaintain();
if (count == 0) {
return PageResult.buildPage(pageNo, pageSize, count);
}
List<MaintainDTO> list = websiteDao.listMaintain(lon, lat, (pageNo - 1) * pageSize, pageSize).stream().map(MaintainDO::buildMaintainDTO).collect(Collectors.toList());
return PageResult.buildPage(pageNo, pageSize, count, list);
@Override
public PageResult listMaintainData(Integer pageNo, Integer pageSize, Double lon, Double lat) {
int count = websiteDao.countMaintain();
if (count == 0) {
return PageResult.buildPage(pageNo, pageSize, count);
}
List<MaintainDTO> list =
websiteDao.listMaintain(lon, lat, (pageNo - 1) * pageSize, pageSize).stream()
.map(MaintainDO::buildMaintainDTO)
.collect(Collectors.toList());
return PageResult.buildPage(pageNo, pageSize, count, list);
}
@Override
public PageResult getWebsiteList(Integer pageNo, Integer pageSize, Double lon, Double lat) {
int count = websiteDao.countWebsiteList();
if (count == 0) {
return PageResult.buildPage(pageNo, pageSize, count);
}
List<WebsiteRangeDTO> list = websiteDao.getWebsiteList(lon, lat, (pageNo - 1) * pageSize, pageSize).stream().map(WebsiteInfoDO::buildWebsiteRangeDTO).collect(Collectors.toList());
return PageResult.buildPage(pageNo, pageSize, count, list);
@Override
public PageResult getWebsiteList(Integer pageNo, Integer pageSize, Double lon, Double lat) {
int count = websiteDao.countWebsiteList();
if (count == 0) {
return PageResult.buildPage(pageNo, pageSize, count);
}
List<WebsiteRangeDTO> list =
websiteDao.getWebsiteList(lon, lat, (pageNo - 1) * pageSize, pageSize).stream()
.map(WebsiteInfoDO::buildWebsiteRangeDTO)
.collect(Collectors.toList());
return PageResult.buildPage(pageNo, pageSize, count, list);
}
}
<?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.mmc.csf.release.dao.BackstageForumDao">
<select id="countDynamic" resultType="java.lang.Integer">
select count(*) from forum_dynamic
<where>
<foreach collection="ids" index="index" separator="," open="user_id in (" close=")" item="ids">
#{ids}
</foreach>
</where>
</select>
<select id="listDynamicInfo" resultType="com.mmc.csf.release.entity.forum.ForumDynamicDO">
select id,user_id,description,is_deleted as deleted from forum_dynamic
<where>
<foreach collection="ids" index="index" separator="," open="user_id in (" close=")" item="ids">
#{ids}
</foreach>
</where>
limit #{pageNo},#{pageSize}
</select>
</mapper>
\ No newline at end of file
......@@ -12,7 +12,8 @@
insert into forum_video(dynamic_id, url)
values (#{dynamicId}, #{videoUrl})
</insert>
<insert id="insertDynamic" keyProperty="id" useGeneratedKeys="true" parameterType="com.mmc.csf.release.entity.ForumDynamicDO">
<insert id="insertDynamic" keyProperty="id" useGeneratedKeys="true"
parameterType="com.mmc.csf.release.entity.forum.ForumDynamicDO">
INSERT INTO forum_dynamic(title, user_id, description, location, lat, lon)
VALUES (#{title}, #{userId}, #{description}, #{location}, #{lat}, #{lon})
</insert>
......@@ -33,11 +34,11 @@
<update id="updateDynamicCommentCount">
update forum_dynamic
set comments_count = comments_count + 1,
pid = pid + 1
pid = pid + 1
where id = #{dynamicId}
and pid = #{pid};
</update>
<select id="getDynamicInfo" resultType="com.mmc.csf.release.entity.ForumDynamicDO">
<select id="getDynamicInfo" resultType="com.mmc.csf.release.entity.forum.ForumDynamicDO">
select id,
pid,
title,
......@@ -51,13 +52,14 @@
create_time
from forum_dynamic
where id = #{dynamicId}
and is_deleted = 0
and is_deleted = 0
</select>
<select id="countDynamicList" resultType="java.lang.Integer">
select count(*)
from forum_dynamic where is_deleted = 0
from forum_dynamic
where is_deleted = 0
</select>
<select id="dynamicList" resultType="com.mmc.csf.release.entity.ForumDynamicDO">
<select id="dynamicList" resultType="com.mmc.csf.release.entity.forum.ForumDynamicDO">
select id,
pid,
title,
......@@ -75,7 +77,7 @@
LIMIT #{itemIndex}, #{pageSize}
</select>
<select id="listDynamicPicture" resultType="com.mmc.csf.release.entity.ForumImageDO">
<select id="listDynamicPicture" resultType="com.mmc.csf.release.entity.forum.ForumImageDO">
select id, url , dynamic_id
from forum_image
where
......@@ -84,7 +86,7 @@
#{item}
</foreach>
</select>
<select id="listDynamicVideo" resultType="com.mmc.csf.release.entity.ForumVideoDO">
<select id="listDynamicVideo" resultType="com.mmc.csf.release.entity.forum.ForumVideoDO">
select id, url , dynamic_id
from forum_video
where
......@@ -93,7 +95,7 @@
#{item}
</foreach>
</select>
<select id="dynamicPicture" resultType="com.mmc.csf.release.entity.ForumImageDO">
<select id="dynamicPicture" resultType="com.mmc.csf.release.entity.forum.ForumImageDO">
select id,
dynamic_id,
url
......@@ -101,7 +103,7 @@
where dynamic_id = #{dynamicId}
and is_deleted = 0
</select>
<select id="dynamicVideo" resultType="com.mmc.csf.release.entity.ForumVideoDO">
<select id="dynamicVideo" resultType="com.mmc.csf.release.entity.forum.ForumVideoDO">
select id,
dynamic_id,
url
......
......@@ -41,7 +41,7 @@
) t
</select>
<select id="selectLiked" resultType="com.mmc.csf.release.entity.ForumDynamicDO">
<select id="selectLiked" resultType="com.mmc.csf.release.entity.forum.ForumDynamicDO">
SELECT fd.id
FROM forum_dynamic fd
INNER JOIN forum_like fl ON fd.id = fl.dynamic_id
......
......@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.csf.release.dao.WebsiteDao">
<resultMap id="dummyFlyerResultMap" type="com.mmc.csf.release.entity.DummyFlyerDO">
<resultMap id="dummyFlyerResultMap" type="com.mmc.csf.release.entity.store.DummyFlyerDO">
<id property="id" column="id"/>
<result property="flyerName" column="flyer_name"/>
<result property="phoneNum" column="phone_num"/>
......@@ -13,7 +13,7 @@
<result property="distance" column="distance"/>
</resultMap>
<resultMap id="dummyUavResultMap" type="com.mmc.csf.release.entity.DummyUavDO">
<resultMap id="dummyUavResultMap" type="com.mmc.csf.release.entity.store.DummyUavDO">
<id property="id" column="id"/>
<result property="code" column="code"/>
<result property="online" column="online"/>
......@@ -23,65 +23,74 @@
<result property="distance" column="distance"/>
</resultMap>
<select id="getWebsiteByAdCode" resultType="com.mmc.csf.release.entity.WebsiteInfoDO">
<select id="getWebsiteByAdCode" resultType="com.mmc.csf.release.entity.store.WebsiteInfoDO">
select id, ad_code adCode, province, location, create_time createTime
from website_info
where ad_code = #{adCode}
</select>
<select id="countDummyFlyer" resultType="Integer">
select count(*) from dummy_flyer
select count(*)
from dummy_flyer
</select>
<select id="listDummyFlyer" resultMap="dummyFlyerResultMap">
SELECT id,flyer_name,phone_num,lon,lat,
st_distance_sphere(point(lon,lat),point(${lon},${lat})) as distance
SELECT id,
flyer_name,
phone_num,
lon,
lat,
st_distance_sphere(point(lon, lat), point(${lon}, ${lat})) as distance
FROM dummy_flyer
ORDER BY distance ASC
LIMIT #{pageNo},#{pageSize}
LIMIT #{pageNo}, #{pageSize}
</select>
<select id="countDummyUav" resultType="Integer">
select count(*) from dummy_uav
select count(*)
from dummy_uav
</select>
<select id="listDummyUav" resultMap="dummyUavResultMap">
SELECT id,code,online,lon,lat,uav_name,
st_distance_sphere(point(lon,lat),point(${lon},${lat})) as distance
SELECT id,
code,
online,
lon,
lat,
uav_name,
st_distance_sphere(point(lon, lat), point(${lon}, ${lat})) as distance
FROM dummy_uav
ORDER BY distance ASC
LIMIT #{pageNo},#{pageSize}
LIMIT #{pageNo}, #{pageSize}
</select>
<select id="countMaintain" resultType="java.lang.Integer">
select count(*) from maintain
select count(*)
from maintain
</select>
<select id="listMaintain" resultType="com.mmc.csf.release.entity.MaintainDO">
SELECT
id,
`name`,
address,
lon,
lat, st_distance_sphere (point (lon,lat),point (${lon},${lat})) AS distance
FROM
maintain
ORDER BY
distance ASC
LIMIT #{pageNo},#{pageSize}
<select id="listMaintain" resultType="com.mmc.csf.release.entity.store.MaintainDO">
SELECT id,
`name`,
address,
lon,
lat,
st_distance_sphere(point(lon, lat), point(${lon}, ${lat})) AS distance
FROM maintain
ORDER BY distance ASC
LIMIT #{pageNo}, #{pageSize}
</select>
<select id="countWebsiteList" resultType="java.lang.Integer">
select count(*) from website_info
select count(*)
from website_info
</select>
<select id="getWebsiteList" resultType="com.mmc.csf.release.entity.WebsiteInfoDO">
SELECT
id,
`name`,
address,
lon,
lat, st_distance_sphere (point (lon,lat),point (${lon},${lat})) AS distance
FROM
website_info
ORDER BY
distance ASC
LIMIT #{pageNo},#{pageSize}
<select id="getWebsiteList" resultType="com.mmc.csf.release.entity.store.WebsiteInfoDO">
SELECT id,
`name`,
address,
lon,
lat,
st_distance_sphere(point(lon, lat), point(${lon}, ${lat})) AS distance
FROM website_info
ORDER BY distance ASC
LIMIT #{pageNo}, #{pageSize}
</select>
</mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论