运维社区运维社区个人中心更新
This commit is contained in:
parent
8b22032d56
commit
58120a31e9
@ -0,0 +1,105 @@
|
|||||||
|
package com.inspur.web.controller.community;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import com.inspur.common.annotation.Log;
|
||||||
|
import com.inspur.common.core.controller.BaseController;
|
||||||
|
import com.inspur.common.core.domain.AjaxResult;
|
||||||
|
import com.inspur.common.enums.BusinessType;
|
||||||
|
import com.inspur.community.domain.CommunityNotice;
|
||||||
|
import com.inspur.community.service.ICommunityNoticeService;
|
||||||
|
import com.inspur.common.utils.poi.ExcelUtil;
|
||||||
|
import com.inspur.common.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 社区通知Controller
|
||||||
|
*
|
||||||
|
* @author inspur
|
||||||
|
* @date 2024-05-08
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/community/notice")
|
||||||
|
public class CommunityNoticeController extends BaseController
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private ICommunityNoticeService communityNoticeService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询社区通知列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('community:notice:list')")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo list(CommunityNotice communityNotice)
|
||||||
|
{
|
||||||
|
startPage();
|
||||||
|
List<CommunityNotice> list = communityNoticeService.selectCommunityNoticeList(communityNotice);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出社区通知列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('community:notice:export')")
|
||||||
|
@Log(title = "社区通知", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(HttpServletResponse response, CommunityNotice communityNotice)
|
||||||
|
{
|
||||||
|
List<CommunityNotice> list = communityNoticeService.selectCommunityNoticeList(communityNotice);
|
||||||
|
ExcelUtil<CommunityNotice> util = new ExcelUtil<CommunityNotice>(CommunityNotice.class);
|
||||||
|
util.exportExcel(response, list, "社区通知数据");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取社区通知详细信息
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('community:notice:query')")
|
||||||
|
@GetMapping(value = "/{noticeId}")
|
||||||
|
public AjaxResult getInfo(@PathVariable("noticeId") String noticeId)
|
||||||
|
{
|
||||||
|
return success(communityNoticeService.selectCommunityNoticeByNoticeId(noticeId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增社区通知
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('community:notice:add')")
|
||||||
|
@Log(title = "社区通知", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping
|
||||||
|
public AjaxResult add(@RequestBody CommunityNotice communityNotice)
|
||||||
|
{
|
||||||
|
return toAjax(communityNoticeService.insertCommunityNotice(communityNotice));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改社区通知
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('community:notice:edit')")
|
||||||
|
@Log(title = "社区通知", businessType = BusinessType.UPDATE)
|
||||||
|
@PutMapping
|
||||||
|
public AjaxResult edit(@RequestBody CommunityNotice communityNotice)
|
||||||
|
{
|
||||||
|
return toAjax(communityNoticeService.updateCommunityNotice(communityNotice));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除社区通知
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('community:notice:remove')")
|
||||||
|
@Log(title = "社区通知", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{noticeIds}")
|
||||||
|
public AjaxResult remove(@PathVariable String[] noticeIds)
|
||||||
|
{
|
||||||
|
return toAjax(communityNoticeService.deleteCommunityNoticeByNoticeIds(noticeIds));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,8 +1,10 @@
|
|||||||
package com.inspur.web.controller.community;
|
package com.inspur.web.controller.community;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import com.inspur.common.utils.SecurityUtils;
|
||||||
import com.inspur.community.domain.vo.CommunityPostInfoVO;
|
import com.inspur.community.domain.vo.CommunityPostInfoVO;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -48,6 +50,25 @@ public class CommunityPostInfoController extends BaseController
|
|||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询当前登录用户社区帖子信息列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('community:info:list')")
|
||||||
|
@GetMapping("/listLogUser")
|
||||||
|
public TableDataInfo listLogUser(CommunityPostInfo communityPostInfo)
|
||||||
|
{
|
||||||
|
startPage();
|
||||||
|
List<CommunityPostInfoVO> list = new ArrayList<>();
|
||||||
|
if(SecurityUtils.getLoginUser()!=null) {
|
||||||
|
communityPostInfo.setUserId(SecurityUtils.getLoginUser().getUserId());
|
||||||
|
|
||||||
|
list = communityPostInfoService.selectCommunityPostInfoList(communityPostInfo);
|
||||||
|
}else {
|
||||||
|
list = null;
|
||||||
|
}
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出社区帖子信息列表
|
* 导出社区帖子信息列表
|
||||||
*/
|
*/
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
package com.inspur.web.controller.community;
|
package com.inspur.web.controller.community;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import com.inspur.common.utils.SecurityUtils;
|
import com.inspur.common.utils.SecurityUtils;
|
||||||
|
import com.inspur.community.domain.vo.CommunityPostLikeVO;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@ -48,6 +50,23 @@ public class CommunityPostLikeController extends BaseController
|
|||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询当前登录用户社区点赞信息列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('community:like:list')")
|
||||||
|
@GetMapping("/listLogUser")
|
||||||
|
public TableDataInfo listLogUser(CommunityPostLike communityPostLike)
|
||||||
|
{
|
||||||
|
startPage();
|
||||||
|
List<CommunityPostLikeVO> list = new ArrayList<>();
|
||||||
|
if(SecurityUtils.getLoginUser() != null){
|
||||||
|
list = communityPostLikeService.selectCommunityPostLikeListByUserId(SecurityUtils.getLoginUser().getUserId());
|
||||||
|
}else{
|
||||||
|
list = null;
|
||||||
|
}
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出社区点赞信息列表
|
* 导出社区点赞信息列表
|
||||||
*/
|
*/
|
||||||
|
@ -0,0 +1,137 @@
|
|||||||
|
package com.inspur.community.domain;
|
||||||
|
|
||||||
|
import com.inspur.common.annotation.Excel;
|
||||||
|
import com.inspur.common.core.domain.BaseEntity;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 社区通知对象 community_notice
|
||||||
|
*
|
||||||
|
* @author zhangjunwen
|
||||||
|
* @date 2024-05-08
|
||||||
|
*/
|
||||||
|
public class CommunityNotice extends BaseEntity
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** 主键 */
|
||||||
|
private String noticeId;
|
||||||
|
|
||||||
|
/** 帖子id */
|
||||||
|
@Excel(name = "帖子id")
|
||||||
|
private String postId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 回复id
|
||||||
|
*/
|
||||||
|
private String replyId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/** 帖子名称 */
|
||||||
|
@Excel(name = "帖子名称")
|
||||||
|
private String postName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 回复内容
|
||||||
|
*/
|
||||||
|
private String replyContent;
|
||||||
|
|
||||||
|
/** 通知类型:1 点赞,2 回复,3 封禁 */
|
||||||
|
@Excel(name = "通知类型:1 点赞,2 回复,3 封禁")
|
||||||
|
private String noticeType;
|
||||||
|
|
||||||
|
/** 状态:0未读,1 已读 */
|
||||||
|
@Excel(name = "状态:0未读,1 已读")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
public void setNoticeId(String noticeId)
|
||||||
|
{
|
||||||
|
this.noticeId = noticeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNoticeId()
|
||||||
|
{
|
||||||
|
return noticeId;
|
||||||
|
}
|
||||||
|
public void setPostId(String postId)
|
||||||
|
{
|
||||||
|
this.postId = postId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPostId()
|
||||||
|
{
|
||||||
|
return postId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReplyId() {
|
||||||
|
return replyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReplyId(String replyId) {
|
||||||
|
this.replyId = replyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(Long userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPostName(String postName)
|
||||||
|
{
|
||||||
|
this.postName = postName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPostName()
|
||||||
|
{
|
||||||
|
return postName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReplyContent() {
|
||||||
|
return replyContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReplyContent(String replyContent) {
|
||||||
|
this.replyContent = replyContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNoticeType(String noticeType)
|
||||||
|
{
|
||||||
|
this.noticeType = noticeType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNoticeType()
|
||||||
|
{
|
||||||
|
return noticeType;
|
||||||
|
}
|
||||||
|
public void setStatus(String status)
|
||||||
|
{
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStatus()
|
||||||
|
{
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
.append("noticeId", getNoticeId())
|
||||||
|
.append("postId", getPostId())
|
||||||
|
.append("replyId", getReplyId())
|
||||||
|
.append("postName", getPostName())
|
||||||
|
.append("noticeType", getNoticeType())
|
||||||
|
.append("remark", getRemark())
|
||||||
|
.append("status", getStatus())
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,41 @@
|
|||||||
|
package com.inspur.community.domain.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.inspur.common.annotation.Excel;
|
||||||
|
import com.inspur.community.domain.CommunityPostInfo;
|
||||||
|
import com.inspur.community.domain.CommunityPostReply;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author zhangjunwen
|
||||||
|
* @create 2024/5/9
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CommunityPostLikeVO {
|
||||||
|
|
||||||
|
/** 用户id */
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/** 点赞帖子id */
|
||||||
|
private String likePostId;
|
||||||
|
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
/** 点赞时间 */
|
||||||
|
private Date likeTime;
|
||||||
|
|
||||||
|
private String replyContent;
|
||||||
|
|
||||||
|
private String postTitle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 点赞的回复信息
|
||||||
|
*/
|
||||||
|
private CommunityPostReply communityPostReply;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 贴子信息
|
||||||
|
*/
|
||||||
|
private CommunityPostInfo communityPostInfo;
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
package com.inspur.community.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.inspur.community.domain.CommunityNotice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 社区通知Mapper接口
|
||||||
|
*
|
||||||
|
* @author zjw
|
||||||
|
* @date 2024-05-08
|
||||||
|
*/
|
||||||
|
public interface CommunityNoticeMapper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询社区通知
|
||||||
|
*
|
||||||
|
* @param noticeId 社区通知主键
|
||||||
|
* @return 社区通知
|
||||||
|
*/
|
||||||
|
public CommunityNotice selectCommunityNoticeByNoticeId(String noticeId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询社区通知列表
|
||||||
|
*
|
||||||
|
* @param communityNotice 社区通知
|
||||||
|
* @return 社区通知集合
|
||||||
|
*/
|
||||||
|
public List<CommunityNotice> selectCommunityNoticeList(CommunityNotice communityNotice);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增社区通知
|
||||||
|
*
|
||||||
|
* @param communityNotice 社区通知
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertCommunityNotice(CommunityNotice communityNotice);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改社区通知
|
||||||
|
*
|
||||||
|
* @param communityNotice 社区通知
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateCommunityNotice(CommunityNotice communityNotice);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除社区通知
|
||||||
|
*
|
||||||
|
* @param noticeId 社区通知主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteCommunityNoticeByNoticeId(String noticeId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除社区通知
|
||||||
|
*
|
||||||
|
* @param noticeIds 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteCommunityNoticeByNoticeIds(String[] noticeIds);
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,7 @@ package com.inspur.community.mapper;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.inspur.community.domain.CommunityPostLike;
|
import com.inspur.community.domain.CommunityPostLike;
|
||||||
|
import com.inspur.community.domain.vo.CommunityPostLikeVO;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -28,6 +29,11 @@ public interface CommunityPostLikeMapper
|
|||||||
*/
|
*/
|
||||||
public List<CommunityPostLike> selectCommunityPostLikeList(CommunityPostLike communityPostLike);
|
public List<CommunityPostLike> selectCommunityPostLikeList(CommunityPostLike communityPostLike);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询用户点赞的详细信息
|
||||||
|
*/
|
||||||
|
public List<CommunityPostLikeVO> selectCommunityPostLikeListByUserId(Long userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据postid统计点赞数
|
* 根据postid统计点赞数
|
||||||
*/
|
*/
|
||||||
|
@ -0,0 +1,62 @@
|
|||||||
|
package com.inspur.community.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.inspur.community.domain.CommunityNotice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 社区通知Service接口
|
||||||
|
*
|
||||||
|
* @author zjw
|
||||||
|
* @date 2024-05-08
|
||||||
|
*/
|
||||||
|
public interface ICommunityNoticeService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询社区通知
|
||||||
|
*
|
||||||
|
* @param noticeId 社区通知主键
|
||||||
|
* @return 社区通知
|
||||||
|
*/
|
||||||
|
public CommunityNotice selectCommunityNoticeByNoticeId(String noticeId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询社区通知列表
|
||||||
|
*
|
||||||
|
* @param communityNotice 社区通知
|
||||||
|
* @return 社区通知集合
|
||||||
|
*/
|
||||||
|
public List<CommunityNotice> selectCommunityNoticeList(CommunityNotice communityNotice);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增社区通知
|
||||||
|
*
|
||||||
|
* @param communityNotice 社区通知
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertCommunityNotice(CommunityNotice communityNotice);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改社区通知
|
||||||
|
*
|
||||||
|
* @param communityNotice 社区通知
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateCommunityNotice(CommunityNotice communityNotice);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除社区通知
|
||||||
|
*
|
||||||
|
* @param noticeIds 需要删除的社区通知主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteCommunityNoticeByNoticeIds(String[] noticeIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除社区通知信息
|
||||||
|
*
|
||||||
|
* @param noticeId 社区通知主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteCommunityNoticeByNoticeId(String noticeId);
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,7 @@ package com.inspur.community.service;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.inspur.community.domain.CommunityPostLike;
|
import com.inspur.community.domain.CommunityPostLike;
|
||||||
|
import com.inspur.community.domain.vo.CommunityPostLikeVO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 社区点赞信息Service接口
|
* 社区点赞信息Service接口
|
||||||
@ -27,6 +28,11 @@ public interface ICommunityPostLikeService
|
|||||||
*/
|
*/
|
||||||
public List<CommunityPostLike> selectCommunityPostLikeList(CommunityPostLike communityPostLike);
|
public List<CommunityPostLike> selectCommunityPostLikeList(CommunityPostLike communityPostLike);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询用户点赞的详细信息
|
||||||
|
*/
|
||||||
|
public List<CommunityPostLikeVO> selectCommunityPostLikeListByUserId(Long userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增社区点赞信息
|
* 新增社区点赞信息
|
||||||
*
|
*
|
||||||
|
@ -0,0 +1,111 @@
|
|||||||
|
package com.inspur.community.service.impl;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.inspur.common.utils.uuid.IdUtils;
|
||||||
|
import com.inspur.community.domain.CommunityPostReply;
|
||||||
|
import com.inspur.community.mapper.CommunityPostReplyMapper;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.inspur.community.mapper.CommunityNoticeMapper;
|
||||||
|
import com.inspur.community.domain.CommunityNotice;
|
||||||
|
import com.inspur.community.service.ICommunityNoticeService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 社区通知Service业务层处理
|
||||||
|
*
|
||||||
|
* @author zjw
|
||||||
|
* @date 2024-05-08
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CommunityNoticeServiceImpl implements ICommunityNoticeService
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private CommunityNoticeMapper communityNoticeMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CommunityPostReplyMapper communityPostReplyMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询社区通知
|
||||||
|
*
|
||||||
|
* @param noticeId 社区通知主键
|
||||||
|
* @return 社区通知
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public CommunityNotice selectCommunityNoticeByNoticeId(String noticeId)
|
||||||
|
{
|
||||||
|
return communityNoticeMapper.selectCommunityNoticeByNoticeId(noticeId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询社区通知列表
|
||||||
|
*
|
||||||
|
* @param communityNotice 社区通知
|
||||||
|
* @return 社区通知
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<CommunityNotice> selectCommunityNoticeList(CommunityNotice communityNotice)
|
||||||
|
{
|
||||||
|
List<CommunityNotice> list = communityNoticeMapper.selectCommunityNoticeList(communityNotice);
|
||||||
|
for (CommunityNotice notice : list) {
|
||||||
|
if(notice.getReplyId() == null || notice.getReplyId().equals("")){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
CommunityPostReply reply = communityPostReplyMapper.selectCommunityPostReplyByReplyId(notice.getReplyId());
|
||||||
|
notice.setReplyContent(reply.getReplyContent());
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增社区通知
|
||||||
|
*
|
||||||
|
* @param communityNotice 社区通知
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertCommunityNotice(CommunityNotice communityNotice)
|
||||||
|
{
|
||||||
|
communityNotice.setNoticeId(IdUtils.simpleUUID());
|
||||||
|
communityNotice.setStatus("0");
|
||||||
|
return communityNoticeMapper.insertCommunityNotice(communityNotice);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改社区通知
|
||||||
|
*
|
||||||
|
* @param communityNotice 社区通知
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updateCommunityNotice(CommunityNotice communityNotice)
|
||||||
|
{
|
||||||
|
return communityNoticeMapper.updateCommunityNotice(communityNotice);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除社区通知
|
||||||
|
*
|
||||||
|
* @param noticeIds 需要删除的社区通知主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteCommunityNoticeByNoticeIds(String[] noticeIds)
|
||||||
|
{
|
||||||
|
return communityNoticeMapper.deleteCommunityNoticeByNoticeIds(noticeIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除社区通知信息
|
||||||
|
*
|
||||||
|
* @param noticeId 社区通知主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteCommunityNoticeByNoticeId(String noticeId)
|
||||||
|
{
|
||||||
|
return communityNoticeMapper.deleteCommunityNoticeByNoticeId(noticeId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,8 @@
|
|||||||
package com.inspur.community.service.impl;
|
package com.inspur.community.service.impl;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.inspur.community.mapper.CommunityPostHeatMapper;
|
import com.inspur.community.mapper.CommunityPostHeatMapper;
|
||||||
@ -40,7 +42,10 @@ public class CommunityPostHeatServiceImpl implements ICommunityPostHeatService
|
|||||||
@Override
|
@Override
|
||||||
public List<CommunityPostHeat> selectCommunityPostHeatList(CommunityPostHeat communityPostHeat)
|
public List<CommunityPostHeat> selectCommunityPostHeatList(CommunityPostHeat communityPostHeat)
|
||||||
{
|
{
|
||||||
return communityPostHeatMapper.selectCommunityPostHeatList(communityPostHeat);
|
//排序
|
||||||
|
List<CommunityPostHeat> heatList = communityPostHeatMapper.selectCommunityPostHeatList(communityPostHeat);
|
||||||
|
heatList.stream().sorted((o1, o2) -> heatSortCalculate(o1).compareTo(heatSortCalculate(o2))).collect(Collectors.toList());
|
||||||
|
return heatList;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -90,5 +95,9 @@ public class CommunityPostHeatServiceImpl implements ICommunityPostHeatService
|
|||||||
{
|
{
|
||||||
return communityPostHeatMapper.deleteCommunityPostHeatByPostId(postId);
|
return communityPostHeatMapper.deleteCommunityPostHeatByPostId(postId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Double heatSortCalculate(CommunityPostHeat communityPostHeat){
|
||||||
|
return 0.4 * communityPostHeat.getViews() + 0.6 * communityPostHeat.getReplies();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,12 @@ import java.util.List;
|
|||||||
|
|
||||||
import com.inspur.common.utils.DateUtils;
|
import com.inspur.common.utils.DateUtils;
|
||||||
import com.inspur.common.utils.SecurityUtils;
|
import com.inspur.common.utils.SecurityUtils;
|
||||||
|
import com.inspur.community.domain.CommunityNotice;
|
||||||
|
import com.inspur.community.domain.CommunityPostReply;
|
||||||
|
import com.inspur.community.domain.vo.CommunityPostLikeVO;
|
||||||
import com.inspur.community.mapper.CommunityPostHeatMapper;
|
import com.inspur.community.mapper.CommunityPostHeatMapper;
|
||||||
|
import com.inspur.community.service.ICommunityNoticeService;
|
||||||
|
import com.inspur.community.service.ICommunityPostReplyService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.inspur.community.mapper.CommunityPostLikeMapper;
|
import com.inspur.community.mapper.CommunityPostLikeMapper;
|
||||||
@ -27,6 +32,11 @@ public class CommunityPostLikeServiceImpl implements ICommunityPostLikeService
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CommunityPostHeatMapper communityPostHeatMapper;
|
private CommunityPostHeatMapper communityPostHeatMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ICommunityNoticeService communityNoticeService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ICommunityPostReplyService communityPostReplyService;
|
||||||
/**
|
/**
|
||||||
* 查询社区点赞信息
|
* 查询社区点赞信息
|
||||||
*
|
*
|
||||||
@ -51,6 +61,13 @@ public class CommunityPostLikeServiceImpl implements ICommunityPostLikeService
|
|||||||
return communityPostLikeMapper.selectCommunityPostLikeList(communityPostLike);
|
return communityPostLikeMapper.selectCommunityPostLikeList(communityPostLike);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询用户点赞的详细信息
|
||||||
|
*/
|
||||||
|
public List<CommunityPostLikeVO> selectCommunityPostLikeListByUserId(Long userId){
|
||||||
|
return communityPostLikeMapper.selectCommunityPostLikeListByUserId(userId);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增社区点赞信息
|
* 新增社区点赞信息
|
||||||
*
|
*
|
||||||
@ -63,8 +80,19 @@ public class CommunityPostLikeServiceImpl implements ICommunityPostLikeService
|
|||||||
communityPostLike.setUserId(SecurityUtils.getLoginUser().getUserId());
|
communityPostLike.setUserId(SecurityUtils.getLoginUser().getUserId());
|
||||||
communityPostLike.setLikeTime(new Date());
|
communityPostLike.setLikeTime(new Date());
|
||||||
//增加热度榜点赞记录加一
|
//增加热度榜点赞记录加一
|
||||||
|
//增加通知
|
||||||
return communityPostLikeMapper.insertCommunityPostLike(communityPostLike);
|
CommunityNotice communityNotice = new CommunityNotice();
|
||||||
|
CommunityPostReply postReply = communityPostReplyService.selectCommunityPostReplyByReplyId(communityPostLike.getLikePostId());
|
||||||
|
if(postReply!=null){
|
||||||
|
communityNotice.setPostId(postReply.getPostId());
|
||||||
|
// communityNotice.setPostName(postReply.getReplyContent());
|
||||||
|
communityNotice.setUserId(postReply.getUserId());
|
||||||
|
communityNotice.setReplyContent(postReply.getReplyContent());
|
||||||
|
communityNotice.setReplyId(postReply.getReplyId());
|
||||||
|
communityNotice.setNoticeType("1");
|
||||||
|
communityNotice.setRemark(postReply.getReplyTime());
|
||||||
|
}
|
||||||
|
return communityPostLikeMapper.insertCommunityPostLike(communityPostLike) & communityNoticeService.insertCommunityNotice(communityNotice);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -8,15 +8,12 @@ import com.inspur.common.core.domain.entity.SysUser;
|
|||||||
import com.inspur.common.utils.DateUtils;
|
import com.inspur.common.utils.DateUtils;
|
||||||
import com.inspur.common.utils.SecurityUtils;
|
import com.inspur.common.utils.SecurityUtils;
|
||||||
import com.inspur.common.utils.uuid.IdUtils;
|
import com.inspur.common.utils.uuid.IdUtils;
|
||||||
import com.inspur.community.domain.CommunityComment;
|
import com.inspur.community.domain.*;
|
||||||
import com.inspur.community.domain.CommunityPostLike;
|
import com.inspur.community.domain.vo.CommunityPostInfoVO;
|
||||||
import com.inspur.community.mapper.CommunityPostHeatMapper;
|
import com.inspur.community.mapper.*;
|
||||||
import com.inspur.community.mapper.CommunityPostLikeMapper;
|
|
||||||
import com.inspur.system.mapper.SysUserMapper;
|
import com.inspur.system.mapper.SysUserMapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.inspur.community.mapper.CommunityPostReplyMapper;
|
|
||||||
import com.inspur.community.domain.CommunityPostReply;
|
|
||||||
import com.inspur.community.service.ICommunityPostReplyService;
|
import com.inspur.community.service.ICommunityPostReplyService;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@ -43,6 +40,12 @@ public class CommunityPostReplyServiceImpl implements ICommunityPostReplyService
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CommunityPostHeatMapper communityPostHeatMapper;
|
private CommunityPostHeatMapper communityPostHeatMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CommunityNoticeMapper communityNoticeMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CommunityPostInfoMapper communityPostInfoMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询社区帖子回复
|
* 查询社区帖子回复
|
||||||
*
|
*
|
||||||
@ -158,7 +161,27 @@ public class CommunityPostReplyServiceImpl implements ICommunityPostReplyService
|
|||||||
communityPostReply.setUserId(SecurityUtils.getLoginUser().getUserId());
|
communityPostReply.setUserId(SecurityUtils.getLoginUser().getUserId());
|
||||||
communityPostReply.setReplyTime(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
|
communityPostReply.setReplyTime(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
|
||||||
//帖子热度回复量加一
|
//帖子热度回复量加一
|
||||||
return communityPostReplyMapper.insertCommunityPostReply(communityPostReply) & communityPostHeatMapper.addReplies(communityPostReply.getPostId());
|
//添加通知
|
||||||
|
CommunityNotice notice = new CommunityNotice();
|
||||||
|
notice.setNoticeId(IdUtils.simpleUUID());
|
||||||
|
notice.setStatus("0");
|
||||||
|
if("0".equals(communityPostReply.getParentReplyId())){//给发贴人添加通知
|
||||||
|
notice.setPostId(communityPostReply.getPostId());
|
||||||
|
CommunityPostInfoVO post = communityPostInfoMapper.selectCommunityPostInfoByPostId(communityPostReply.getPostId());
|
||||||
|
notice.setUserId(post.getUserId());
|
||||||
|
notice.setNoticeType("2");
|
||||||
|
notice.setPostName(post.getPostTitle());
|
||||||
|
notice.setRemark(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,post.getPostTime()));
|
||||||
|
}else{//给评论人添加通知
|
||||||
|
notice.setReplyId(communityPostReply.getParentReplyId());
|
||||||
|
CommunityPostReply parentReply = communityPostReplyMapper.selectCommunityPostReplyByReplyId(communityPostReply.getParentReplyId());
|
||||||
|
notice.setUserId(parentReply.getUserId());
|
||||||
|
notice.setNoticeType("2");
|
||||||
|
notice.setReplyContent(parentReply.getReplyContent());
|
||||||
|
notice.setRemark(parentReply.getReplyTime());
|
||||||
|
}
|
||||||
|
return communityPostReplyMapper.insertCommunityPostReply(communityPostReply) & communityPostHeatMapper.addReplies(communityPostReply.getPostId())
|
||||||
|
& communityNoticeMapper.insertCommunityNotice(notice);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -0,0 +1,92 @@
|
|||||||
|
<?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.inspur.community.mapper.CommunityNoticeMapper">
|
||||||
|
|
||||||
|
<resultMap type="CommunityNotice" id="CommunityNoticeResult">
|
||||||
|
<result property="noticeId" column="notice_id" />
|
||||||
|
<result property="postId" column="post_id" />
|
||||||
|
<result property="replyId" column="reply_id" />
|
||||||
|
<result property="replyContent" column="reply_content" />
|
||||||
|
<result property="postName" column="post_name" />
|
||||||
|
<result property="noticeType" column="notice_type" />
|
||||||
|
<result property="remark" column="remark" />
|
||||||
|
<result property="status" column="status" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectCommunityNoticeVo">
|
||||||
|
select notice_id, post_id, reply_id, user_id, reply_content, post_name, notice_type, remark, status from community_notice
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectCommunityNoticeList" parameterType="CommunityNotice" resultMap="CommunityNoticeResult">
|
||||||
|
<include refid="selectCommunityNoticeVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="postId != null and postId != ''"> and post_id = #{postId}</if>
|
||||||
|
<if test="replyId != null and replyId != ''"> and reply_id = #{replyId}</if>
|
||||||
|
<if test="userId != null and userId != ''"> and user_id = #{userId}</if>
|
||||||
|
<if test="replyContent != null and replyContent != ''"> and reply_content = #{replyContent}</if>
|
||||||
|
<if test="postName != null and postName != ''"> and post_name like concat('%', #{postName}, '%')</if>
|
||||||
|
<if test="noticeType != null and noticeType != ''"> and notice_type = #{noticeType}</if>
|
||||||
|
<if test="status != null and status != ''"> and status = #{status}</if>
|
||||||
|
</where>
|
||||||
|
order by status
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectCommunityNoticeByNoticeId" parameterType="String" resultMap="CommunityNoticeResult">
|
||||||
|
<include refid="selectCommunityNoticeVo"/>
|
||||||
|
where notice_id = #{noticeId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertCommunityNotice" parameterType="CommunityNotice">
|
||||||
|
insert into community_notice
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="noticeId != null">notice_id,</if>
|
||||||
|
<if test="postId != null">post_id,</if>
|
||||||
|
<if test="replyId != null">reply_id,</if>
|
||||||
|
<if test="userId != null">user_id,</if>
|
||||||
|
<if test="replyContent != null">reply_content,</if>
|
||||||
|
<if test="postName != null">post_name,</if>
|
||||||
|
<if test="noticeType != null">notice_type,</if>
|
||||||
|
<if test="remark != null">remark,</if>
|
||||||
|
<if test="status != null">status,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="noticeId != null">#{noticeId},</if>
|
||||||
|
<if test="postId != null">#{postId},</if>
|
||||||
|
<if test="replyId != null">#{replyId},</if>
|
||||||
|
<if test="userId != null">#{userId},</if>
|
||||||
|
<if test="replyContent != null">#{replyContent},</if>
|
||||||
|
<if test="postName != null">#{postName},</if>
|
||||||
|
<if test="noticeType != null">#{noticeType},</if>
|
||||||
|
<if test="remark != null">#{remark},</if>
|
||||||
|
<if test="status != null">#{status},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateCommunityNotice" parameterType="CommunityNotice">
|
||||||
|
update community_notice
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="postId != null">post_id = #{postId},</if>
|
||||||
|
<if test="replyId != null">reply_id = #{replyId},</if>
|
||||||
|
<if test="userId != null">user_id = #{userId},</if>
|
||||||
|
<if test="replyContent != null">reply_content = #{replyContent},</if>
|
||||||
|
<if test="postName != null">post_name = #{postName},</if>
|
||||||
|
<if test="noticeType != null">notice_type = #{noticeType},</if>
|
||||||
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
|
<if test="status != null">status = #{status},</if>
|
||||||
|
</trim>
|
||||||
|
where notice_id = #{noticeId}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteCommunityNoticeByNoticeId" parameterType="String">
|
||||||
|
delete from community_notice where notice_id = #{noticeId}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteCommunityNoticeByNoticeIds" parameterType="String">
|
||||||
|
delete from community_notice where notice_id in
|
||||||
|
<foreach item="noticeId" collection="array" open="(" separator="," close=")">
|
||||||
|
#{noticeId}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
@ -37,7 +37,6 @@
|
|||||||
<if test="postId != null and postId != ''"> and post_id = #{postId}</if>
|
<if test="postId != null and postId != ''"> and post_id = #{postId}</if>
|
||||||
<if test="likes != null "> and likes = #{likes}</if>
|
<if test="likes != null "> and likes = #{likes}</if>
|
||||||
<if test="views != null "> and views = #{views}</if>
|
<if test="views != null "> and views = #{views}</if>
|
||||||
order by a.views * 0.4 + a.replies * 0.6 desc
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectCommunityPostHeatByPostId" parameterType="String" resultMap="CommunityPostHeatResult">
|
<select id="selectCommunityPostHeatByPostId" parameterType="String" resultMap="CommunityPostHeatResult">
|
||||||
|
@ -10,10 +10,51 @@
|
|||||||
<result property="likeTime" column="like_time" />
|
<result property="likeTime" column="like_time" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
<resultMap type="CommunityPostLikeVO" id="CommunityPostLikeVOResult">
|
||||||
|
<result property="userId" column="user_id" />
|
||||||
|
<result property="likePostId" column="like_post_id" />
|
||||||
|
<result property="likeTime" column="like_time" />
|
||||||
|
<result property="replyContent" column="reply_content"/>
|
||||||
|
<result property="postTitle" column="post_title"/>
|
||||||
|
<association property="communityPostReply" javaType="CommunityPostReply" resultMap="CommunityPostReplyResult"/>
|
||||||
|
<association property="communityPostInfo" javaType="CommunityPostInfo" resultMap="CommunityPostInfoResult"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<resultMap type="CommunityPostReply" id="CommunityPostReplyResult">
|
||||||
|
<result property="replyId" column="reply_id" />
|
||||||
|
<result property="postId" column="post_id" />
|
||||||
|
<result property="userId" column="user_id" />
|
||||||
|
<result property="replyContent" column="reply_content" />
|
||||||
|
<result property="replyTime" column="reply_time" />
|
||||||
|
<result property="parentReplyId" column="parent_reply_id" />
|
||||||
|
<result property="rootReplyId" column="root_reply_id" />
|
||||||
|
<result property="status" column="status" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<resultMap type="CommunityPostInfo" id="CommunityPostInfoResult">
|
||||||
|
<result property="postId" column="post_id" />
|
||||||
|
<result property="postType" column="post_type" />
|
||||||
|
<result property="omField" column="om_field" />
|
||||||
|
<result property="omIndustry" column="om_industry" />
|
||||||
|
<result property="postTitle" column="post_title" />
|
||||||
|
<result property="postContent" column="post_content" />
|
||||||
|
<result property="postTime" column="post_time" />
|
||||||
|
<result property="userId" column="user_id" />
|
||||||
|
<result property="lastEditTime" column="last_edit_time" />
|
||||||
|
<result property="views" column="views"/>
|
||||||
|
<result property="status" column="status" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectCommunityPostLikeVo">
|
<sql id="selectCommunityPostLikeVo">
|
||||||
select user_id, like_post_id, like_time from community_post_like
|
select user_id, like_post_id, like_time from community_post_like
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
|
<sql id="selectCommunityPostLikeDetails">
|
||||||
|
select a.user_id, a.like_post_id, a.like_time, b.reply_id, b.post_id, b.reply_content, b.reply_time, b.parent_reply_id, b.root_reply_id, b.status, c.post_id, c.post_title from community_post_like a
|
||||||
|
left join community_post_reply b on a.like_post_id = b.reply_id
|
||||||
|
left join community_post_info c on b.post_id = c.post_id
|
||||||
|
</sql>
|
||||||
|
|
||||||
<select id="selectCommunityPostLikeList" parameterType="CommunityPostLike" resultMap="CommunityPostLikeResult">
|
<select id="selectCommunityPostLikeList" parameterType="CommunityPostLike" resultMap="CommunityPostLikeResult">
|
||||||
<include refid="selectCommunityPostLikeVo"/>
|
<include refid="selectCommunityPostLikeVo"/>
|
||||||
<where>
|
<where>
|
||||||
@ -28,6 +69,11 @@
|
|||||||
where user_id = #{userId}
|
where user_id = #{userId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!--查询用户点赞的详细信息 selectCommunityPostLikeListByUserId-->
|
||||||
|
<select id="selectCommunityPostLikeListByUserId" parameterType="Long" resultMap="CommunityPostLikeVOResult">
|
||||||
|
<include refid="selectCommunityPostLikeDetails"/>
|
||||||
|
where a.user_id = #{userId} and b.status = '0' and c.status = '0'
|
||||||
|
</select>
|
||||||
<!--根据postid统计点赞数
|
<!--根据postid统计点赞数
|
||||||
public int countCommunityPostLikeByLikePostId-->
|
public int countCommunityPostLikeByLikePostId-->
|
||||||
<select id="countCommunityPostLikeByLikePostId" parameterType="String" resultType="long">
|
<select id="countCommunityPostLikeByLikePostId" parameterType="String" resultType="long">
|
||||||
|
@ -9,6 +9,15 @@ export function listCommunityInfo(query) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查询社区贴子信息列表
|
||||||
|
export function listLogUserCommunityInfo(query) {
|
||||||
|
return request({
|
||||||
|
url: "/community/info/listLogUser",
|
||||||
|
method: "get",
|
||||||
|
params: query,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 查询社区贴子信息详细
|
// 查询社区贴子信息详细
|
||||||
export function getCommunityInfo(postId) {
|
export function getCommunityInfo(postId) {
|
||||||
return request({
|
return request({
|
||||||
|
44
inspur-ui/src/api/community/notice.js
Normal file
44
inspur-ui/src/api/community/notice.js
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import request from "@/utils/request";
|
||||||
|
|
||||||
|
// 查询社区通知列表
|
||||||
|
export function listNotice(query) {
|
||||||
|
return request({
|
||||||
|
url: "/community/notice/list",
|
||||||
|
method: "get",
|
||||||
|
params: query,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询社区通知详细
|
||||||
|
export function getNotice(noticeId) {
|
||||||
|
return request({
|
||||||
|
url: "/community/notice/" + noticeId,
|
||||||
|
method: "get",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增社区通知
|
||||||
|
export function addNotice(data) {
|
||||||
|
return request({
|
||||||
|
url: "/community/notice",
|
||||||
|
method: "post",
|
||||||
|
data: data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改社区通知
|
||||||
|
export function updateNotice(data) {
|
||||||
|
return request({
|
||||||
|
url: "/community/notice",
|
||||||
|
method: "put",
|
||||||
|
data: data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除社区通知
|
||||||
|
export function delNotice(noticeId) {
|
||||||
|
return request({
|
||||||
|
url: "/community/notice/" + noticeId,
|
||||||
|
method: "delete",
|
||||||
|
});
|
||||||
|
}
|
1
inspur-ui/src/assets/icons/svg/readed.svg
Normal file
1
inspur-ui/src/assets/icons/svg/readed.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1715153992021" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9749" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M43.52 324.096c-19.968 12.8-32.256 34.304-32.256 57.856v472.064c0 68.096 55.296 123.392 123.904 123.392H888.32c68.096 0 123.392-55.296 123.392-123.392V381.952c0-23.552-11.776-45.056-32.256-57.856L552.96 57.856c-25.6-15.872-58.368-15.872-83.456 0L43.52 324.096zM73.728 872.96c-2.048-7.168-3.072-12.8-3.072-18.944V445.44l289.792 199.168-2.048 1.536L74.752 875.52l-1.024-2.56z m816.128 46.08H133.632l-4.608-12.8 1.024-1.024L409.088 678.4l1.024 1.024 56.32 38.912c26.624 18.432 62.976 18.432 89.6 0l57.344-39.424 1.024 1.024 279.04 226.816-3.584 12.288z m63.488-64.512c0 6.144-1.024 12.288-3.072 18.944l-1.024 2.56-2.048-2.048-283.648-229.376 2.048-1.536L953.344 445.44v409.088zM549.376 123.904l405.504 250.88-401.92 276.992c-12.288 8.192-26.624 12.8-40.96 12.8s-28.672-4.096-40.96-12.8L69.12 374.272l2.56-1.536L473.6 123.392c23.04-13.824 52.224-13.824 75.776 0.512z" fill="#f4ea2a" p-id="9750"></path></svg>
|
After Width: | Height: | Size: 1.2 KiB |
1
inspur-ui/src/assets/icons/svg/unread.svg
Normal file
1
inspur-ui/src/assets/icons/svg/unread.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1715153929556" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6190" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M166.8 794.3c-2.6 0-5.1-0.4-7.5-0.8 1.4-1.6 3.1-3.4 5.3-5.5L386 582.1l51 57.6c19.5 22 45.7 34.2 73.6 34.2 28 0 54.1-12.1 73.6-34.2l51-57.6L856.7 788c2.2 2.1 3.9 3.9 5.4 5.5-2.5 0.4-5 0.8-7.5 0.8H166.8z m-49.1-35.6c-2.4-6.4-3.8-13.3-3.8-20.6V288.4c0-4.4 0.6-8.7 1.5-12.8 2.2 3 4.4 6 7.2 9.1l227.1 256.4-220 204.5c-4.7 4.6-8.6 8.9-12 13.1z m736.8-526.5c4.9 0 9.5 0.9 13.9 2.2-1.3 2.7-3.7 6.7-8.2 11.8l-314.5 355c-18.8 21.3-51.4 21.3-70.3 0L161 246.2c-4.5-5.1-6.9-9.1-8.2-11.8 4.5-1.3 9.1-2.2 13.9-2.2h687.8z m52.9 56.2v449.7c0 7.3-1.4 14.2-3.8 20.6-3.4-4.2-7.3-8.5-12-12.9l-220-204.5 227.1-256.4c2.8-3.1 5-6.1 7.2-9.1 1 3.9 1.5 8.2 1.5 12.6z m-13.9-104.3c-9.5-4.8-22.1-8.1-39-8.1H166.8c-16.9 0-29.5 3.3-39 8.1-39.1 16.6-66.8 57-66.8 104.3v449.7c0 47 27.3 87.2 66 104 9.4 4.9 22.2 8.4 39.8 8.4h687.7c17.6 0 30.4-3.5 39.8-8.4 38.6-16.8 66-57 66-104V288.4c0.1-47.3-27.7-87.7-66.8-104.3z" fill="#FFCE6A" p-id="6191"></path></svg>
|
After Width: | Height: | Size: 1.2 KiB |
@ -174,11 +174,11 @@ export default {
|
|||||||
// this.replyForm.createBy = this.$store.getters.name;
|
// this.replyForm.createBy = this.$store.getters.name;
|
||||||
this.replyForm.status = "0";
|
this.replyForm.status = "0";
|
||||||
}
|
}
|
||||||
console.log("aaa:", this.replyForm);
|
// console.log("aaa:", this.replyForm);
|
||||||
addReply(this.replyForm).then((response) => {
|
addReply(this.replyForm).then((response) => {
|
||||||
this.$modal.msgSuccess("评论发表成功");
|
this.$modal.msgSuccess("评论发表成功");
|
||||||
this.reset();
|
this.reset();
|
||||||
this.listReply();
|
this.getMessageList();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
959
inspur-ui/src/views/community/personal/index.vue
Normal file
959
inspur-ui/src/views/community/personal/index.vue
Normal file
@ -0,0 +1,959 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-tabs
|
||||||
|
v-model="activeName"
|
||||||
|
:tab-position="tabPosition"
|
||||||
|
@tab-click="handleTabClick"
|
||||||
|
>
|
||||||
|
<el-tab-pane
|
||||||
|
label="最新通知"
|
||||||
|
name="notice"
|
||||||
|
>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col
|
||||||
|
:sm="2"
|
||||||
|
class="hidden-xs-only"
|
||||||
|
style="opacity:0;"
|
||||||
|
>左侧占位</el-col>
|
||||||
|
<el-col
|
||||||
|
:xs="24"
|
||||||
|
:sm="15"
|
||||||
|
>
|
||||||
|
<el-card
|
||||||
|
style="background-color: rgba(255,255,255,0.9)"
|
||||||
|
class="left-item"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
slot="header"
|
||||||
|
class="total"
|
||||||
|
>
|
||||||
|
<div class="titleIndex">
|
||||||
|
<!-- <i
|
||||||
|
v-if="selected"
|
||||||
|
class="el-icon-back"
|
||||||
|
@click="updateForumList"
|
||||||
|
></i> -->
|
||||||
|
<span>我的通知</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <el-row
|
||||||
|
type="flex"
|
||||||
|
align="middle"
|
||||||
|
style="flex-wrap: wrap"
|
||||||
|
:gutter="20"
|
||||||
|
v-for="notice in noticeList"
|
||||||
|
:key="notice.noticeId"
|
||||||
|
shadow="never"
|
||||||
|
class="forum-content"
|
||||||
|
> -->
|
||||||
|
<div
|
||||||
|
v-for="notice in noticeList"
|
||||||
|
:key="notice.noticeId"
|
||||||
|
shadow="never"
|
||||||
|
class="forum-content"
|
||||||
|
>
|
||||||
|
<!-- <el-col
|
||||||
|
:xs="24"
|
||||||
|
:sm="18"
|
||||||
|
style="padding-left: 10px;padding-right: 10px;margin-bottom: 5px;margin-top: -5px;"
|
||||||
|
> -->
|
||||||
|
<div style="display:flex;align-items: center;justify-content: space-between;">
|
||||||
|
<!-- <h3><svg-icon icon-class="Topping" /> {{notice.postName}}</h3> -->
|
||||||
|
<div class="forum-info">
|
||||||
|
<!-- <div class="user-info">
|
||||||
|
<i class="el-icon-user"></i>
|
||||||
|
<span class="header">{{ forum.userName}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="forum-date">
|
||||||
|
<i class="el-icon-date"></i>
|
||||||
|
<span> {{forum.postTime}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="forum-views">
|
||||||
|
<i class="el-icon-view"></i>
|
||||||
|
<span> {{forum.views}}</span>
|
||||||
|
</div> -->
|
||||||
|
<!-- <div style="display:flex">您的<span v-if="notice.replyId != null">评论:<span>{{ notice.replyContent }}</span></span> <span v-else>贴子:<span>{{ notice.postName }}</span></span> 被 </div> -->
|
||||||
|
<svg-icon
|
||||||
|
v-if="notice.status === '0'"
|
||||||
|
icon-class="unread"
|
||||||
|
class="icon"
|
||||||
|
/>
|
||||||
|
<svg-icon
|
||||||
|
v-else
|
||||||
|
icon-class="readed"
|
||||||
|
class="icon"
|
||||||
|
/>
|
||||||
|
<h1
|
||||||
|
class="notice-content"
|
||||||
|
v-if="notice.replyId != null"
|
||||||
|
>您的评论 <div
|
||||||
|
class="word-link"
|
||||||
|
@click="toPost(notice)"
|
||||||
|
>{{ notice.replyContent }}</div> 被<template>
|
||||||
|
<dict-tag
|
||||||
|
:options="dict.type.community_notice_type"
|
||||||
|
:value="notice.noticeType"
|
||||||
|
/>
|
||||||
|
</template></h1>
|
||||||
|
<h1
|
||||||
|
class="notice-content"
|
||||||
|
v-else
|
||||||
|
>您的贴子<div
|
||||||
|
class="word-link"
|
||||||
|
@click="toPost(notice)"
|
||||||
|
>{{ notice.postName }}</div>被<template>
|
||||||
|
<dict-tag
|
||||||
|
:options="dict.type.community_notice_type"
|
||||||
|
:value="notice.noticeType"
|
||||||
|
/>
|
||||||
|
</template></h1>
|
||||||
|
</div>
|
||||||
|
<div>{{ notice.remark }}</div>
|
||||||
|
<div> <el-button
|
||||||
|
v-if="notice.status == '0'"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
@click="markReaded(notice)"
|
||||||
|
>标为已读</el-button>
|
||||||
|
<span
|
||||||
|
style="color:lightgreen"
|
||||||
|
v-else
|
||||||
|
>已读</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- </el-col> -->
|
||||||
|
</div>
|
||||||
|
<!-- </el-row> -->
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
background
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
@pagination="getList"
|
||||||
|
style="margin-bottom: 30px;float: right;margin-right: 10px;"
|
||||||
|
/>
|
||||||
|
</el-card>
|
||||||
|
<!-- <forumForm
|
||||||
|
ref="form"
|
||||||
|
@addSucess="releaseSuc"
|
||||||
|
></forumForm> -->
|
||||||
|
</el-col>
|
||||||
|
<el-col
|
||||||
|
:sm="2"
|
||||||
|
class="hidden-xs-only"
|
||||||
|
style="opacity:0;"
|
||||||
|
>右侧占位</el-col>
|
||||||
|
</el-row></el-tab-pane>
|
||||||
|
<el-tab-pane
|
||||||
|
label="我的贴子"
|
||||||
|
name="post"
|
||||||
|
>
|
||||||
|
<el-card
|
||||||
|
style="background-color: rgba(255,255,255,0.9)"
|
||||||
|
class="left-item"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
slot="header"
|
||||||
|
class="total"
|
||||||
|
>
|
||||||
|
<div class="titleIndex">
|
||||||
|
<span>我的贴子</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-row
|
||||||
|
type="flex"
|
||||||
|
align="middle"
|
||||||
|
style="flex-wrap: wrap"
|
||||||
|
:gutter="20"
|
||||||
|
v-for="forum in forumList"
|
||||||
|
:key="forum.postId"
|
||||||
|
shadow="never"
|
||||||
|
class="post-forum-content"
|
||||||
|
>
|
||||||
|
<div @click="getForumInfo(forum.postId)">
|
||||||
|
<el-col
|
||||||
|
:xs="24"
|
||||||
|
:sm="18"
|
||||||
|
style="padding-left: 10px;padding-right: 10px;margin-bottom: 5px;margin-top: -5px;"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<h3><svg-icon
|
||||||
|
icon-class="Topping"
|
||||||
|
v-show="forum.top==1"
|
||||||
|
/> {{forum.postTitle}}</h3>
|
||||||
|
<div class="forum-info">
|
||||||
|
<div class="user-info">
|
||||||
|
<i class="el-icon-user"></i>
|
||||||
|
<span class="header">{{ forum.userName}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="forum-date">
|
||||||
|
<i class="el-icon-date"></i>
|
||||||
|
<span> {{forum.postTime}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="forum-views">
|
||||||
|
<i class="el-icon-view"></i>
|
||||||
|
<span> {{forum.views}}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
</div>
|
||||||
|
</el-row>
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
background
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
@pagination="getForumList"
|
||||||
|
style="margin-bottom: 30px;float: right;margin-right: 10px;"
|
||||||
|
/>
|
||||||
|
</el-card>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane
|
||||||
|
label="我的点赞"
|
||||||
|
name="like"
|
||||||
|
>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col
|
||||||
|
:sm="2"
|
||||||
|
class="hidden-xs-only"
|
||||||
|
style="opacity:0;"
|
||||||
|
>左侧占位</el-col>
|
||||||
|
<el-col
|
||||||
|
:xs="24"
|
||||||
|
:sm="15"
|
||||||
|
>
|
||||||
|
<el-card
|
||||||
|
style="background-color: rgba(255,255,255,0.9)"
|
||||||
|
class="left-item"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
slot="header"
|
||||||
|
class="total"
|
||||||
|
>
|
||||||
|
<div class="titleIndex">
|
||||||
|
<!-- <i
|
||||||
|
v-if="selected"
|
||||||
|
class="el-icon-back"
|
||||||
|
@click="updateForumList"
|
||||||
|
></i> -->
|
||||||
|
<span>我的点赞</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <el-row
|
||||||
|
type="flex"
|
||||||
|
align="middle"
|
||||||
|
style="flex-wrap: wrap"
|
||||||
|
:gutter="20"
|
||||||
|
v-for="notice in noticeList"
|
||||||
|
:key="notice.noticeId"
|
||||||
|
shadow="never"
|
||||||
|
class="forum-content"
|
||||||
|
> -->
|
||||||
|
<div
|
||||||
|
v-for="like in likeList"
|
||||||
|
:key="like.userId"
|
||||||
|
shadow="never"
|
||||||
|
class="forum-content"
|
||||||
|
>
|
||||||
|
<div style="display:flex;align-items: center;justify-content: space-between;">
|
||||||
|
<div class="forum-info">
|
||||||
|
<h1 class="notice-content">您于{{ like.likeTime }}点赞了评论<div
|
||||||
|
class="word-link"
|
||||||
|
@click="likeToPost(like)"
|
||||||
|
>{{ like.replyContent }}</div>在贴子<div
|
||||||
|
class="word-link"
|
||||||
|
@click="likeToPost(like)"
|
||||||
|
>{{ like.postTitle }}</div>
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- </el-col> -->
|
||||||
|
</div>
|
||||||
|
<!-- </el-row> -->
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
background
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
@pagination="getLikeList"
|
||||||
|
style="margin-bottom: 30px;float: right;margin-right: 10px;"
|
||||||
|
/>
|
||||||
|
</el-card>
|
||||||
|
<!-- <forumForm
|
||||||
|
ref="form"
|
||||||
|
@addSucess="releaseSuc"
|
||||||
|
></forumForm> -->
|
||||||
|
</el-col>
|
||||||
|
<el-col
|
||||||
|
:sm="2"
|
||||||
|
class="hidden-xs-only"
|
||||||
|
style="opacity:0;"
|
||||||
|
>右侧占位</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { Loading } from "element-ui";
|
||||||
|
import {
|
||||||
|
listNotice,
|
||||||
|
getNotice,
|
||||||
|
delNotice,
|
||||||
|
addNotice,
|
||||||
|
updateNotice,
|
||||||
|
} from "@/api/community/notice";
|
||||||
|
import {
|
||||||
|
listCommunityInfo,
|
||||||
|
getCommunityInfo,
|
||||||
|
addCommunityInfo,
|
||||||
|
updateCommunityInfo,
|
||||||
|
CommunityInfo,
|
||||||
|
addViews,
|
||||||
|
listLogUserCommunityInfo,
|
||||||
|
} from "@/api/community/info";
|
||||||
|
import { listLogUserLike } from "@/api/community/like";
|
||||||
|
export default {
|
||||||
|
name: "Notice",
|
||||||
|
dicts: ["community_notice_type"],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 社区通知表格数据
|
||||||
|
noticeList: [],
|
||||||
|
// 我的发贴
|
||||||
|
forumList: [],
|
||||||
|
//我的点赞
|
||||||
|
likeList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {},
|
||||||
|
activeName: "notice",
|
||||||
|
tabPosition: "left",
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleTabClick(tab) {
|
||||||
|
if (this.activeName === "notice") {
|
||||||
|
this.getList();
|
||||||
|
} else if (this.activeName === "post") {
|
||||||
|
this.getForumList();
|
||||||
|
} else {
|
||||||
|
this.getLikeList();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getLikeList() {
|
||||||
|
let loadingInstance = Loading.service({
|
||||||
|
target: ".left-item",
|
||||||
|
});
|
||||||
|
this.queryParams = {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
};
|
||||||
|
listLogUserLike(this.queryParams)
|
||||||
|
.then((response) => {
|
||||||
|
this.likeList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
loadingInstance.close();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 获取贴子列表 */
|
||||||
|
getForumList() {
|
||||||
|
let loadingInstance = Loading.service({
|
||||||
|
target: ".left-item",
|
||||||
|
});
|
||||||
|
this.queryParams = {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
};
|
||||||
|
listLogUserCommunityInfo(this.queryParams)
|
||||||
|
.then((response) => {
|
||||||
|
this.forumList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
loadingInstance.close();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 跳转到博客详情页
|
||||||
|
getForumInfo(postId) {
|
||||||
|
let routeUrl = this.$router.push({
|
||||||
|
path: "/community/forumDetails",
|
||||||
|
query: {
|
||||||
|
id: postId,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/**标为已读 */
|
||||||
|
markReaded(notice) {
|
||||||
|
let form = {
|
||||||
|
noticeId: notice.noticeId,
|
||||||
|
status: "1",
|
||||||
|
};
|
||||||
|
updateNotice(form).then((response) => {
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
likeToPost(like) {
|
||||||
|
let routeUrl = this.$router.push({
|
||||||
|
path: "/community/forumDetails",
|
||||||
|
query: {
|
||||||
|
id: like.communityPostInfo.postId,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
toPost(notice) {
|
||||||
|
this.markReaded(notice);
|
||||||
|
let routeUrl = this.$router.push({
|
||||||
|
path: "/community/forumDetails",
|
||||||
|
query: {
|
||||||
|
id: notice.postId,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 查询社区通知列表 */
|
||||||
|
getList() {
|
||||||
|
let loadingInstance = Loading.service({
|
||||||
|
target: ".left-item",
|
||||||
|
});
|
||||||
|
this.queryParams = {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
};
|
||||||
|
listNotice(this.queryParams)
|
||||||
|
.then((response) => {
|
||||||
|
this.noticeList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
loadingInstance.close();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
noticeId: null,
|
||||||
|
postId: null,
|
||||||
|
postName: null,
|
||||||
|
noticeType: null,
|
||||||
|
remark: null,
|
||||||
|
status: null,
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map((item) => item.noticeId);
|
||||||
|
this.single = selection.length !== 1;
|
||||||
|
this.multiple = !selection.length;
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
this.reset();
|
||||||
|
this.open = true;
|
||||||
|
this.title = "添加社区通知";
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
this.reset();
|
||||||
|
const noticeId = row.noticeId || this.ids;
|
||||||
|
getNotice(noticeId).then((response) => {
|
||||||
|
this.form = response.data;
|
||||||
|
this.open = true;
|
||||||
|
this.title = "修改社区通知";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm() {
|
||||||
|
this.$refs["form"].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.form.noticeId != null) {
|
||||||
|
updateNotice(this.form).then((response) => {
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addNotice(this.form).then((response) => {
|
||||||
|
this.$modal.msgSuccess("新增成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const noticeIds = row.noticeId || this.ids;
|
||||||
|
this.$modal
|
||||||
|
.confirm('是否确认删除社区通知编号为"' + noticeIds + '"的数据项?')
|
||||||
|
.then(function () {
|
||||||
|
return delNotice(noticeIds);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download(
|
||||||
|
"system/notice/export",
|
||||||
|
{
|
||||||
|
...this.queryParams,
|
||||||
|
},
|
||||||
|
`notice_${new Date().getTime()}.xlsx`
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.icon {
|
||||||
|
height: 20px;
|
||||||
|
width: 30px;
|
||||||
|
}
|
||||||
|
.word-link {
|
||||||
|
color: #3a8ee6;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: medium;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
.border {
|
||||||
|
width: 812px;
|
||||||
|
height: 112px;
|
||||||
|
position: absolute;
|
||||||
|
top: -6px;
|
||||||
|
left: -6px;
|
||||||
|
border: 3px solid white;
|
||||||
|
box-sizing: border-box;
|
||||||
|
animation: clipMe 5s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tit {
|
||||||
|
box-sizing: border-box;
|
||||||
|
position: relative;
|
||||||
|
width: 800px;
|
||||||
|
height: 100px;
|
||||||
|
line-height: 100px;
|
||||||
|
box-shadow: inset 0 0 0 1px white;
|
||||||
|
margin: 40px auto;
|
||||||
|
margin-top: 80px;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 50px;
|
||||||
|
font-weight: normal;
|
||||||
|
letter-spacing: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.intro {
|
||||||
|
letter-spacing: 5px;
|
||||||
|
line-height: 50px;
|
||||||
|
width: 80%;
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: normal;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.down {
|
||||||
|
animation: bounce 2s infinite;
|
||||||
|
animation-duration: 3s;
|
||||||
|
font-size: 25px;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 5px;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
border-radius: 50%;
|
||||||
|
border: 2px solid #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.down:hover {
|
||||||
|
animation: none;
|
||||||
|
cursor: pointer;
|
||||||
|
box-shadow: 0 0 20px 0 white;
|
||||||
|
transition: all 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-item .pagination-container {
|
||||||
|
background: rgb(255, 255, 255, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes clipMe {
|
||||||
|
0%,
|
||||||
|
100% {
|
||||||
|
clip: rect(0px, 806px, 6px, 0px);
|
||||||
|
}
|
||||||
|
|
||||||
|
25% {
|
||||||
|
clip: rect(0px, 6px, 112px, 0px);
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
clip: rect(112px, 812px, 112px, 0px);
|
||||||
|
}
|
||||||
|
|
||||||
|
75% {
|
||||||
|
clip: rect(0px, 812px, 112px, 806px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes bounce {
|
||||||
|
0%,
|
||||||
|
20%,
|
||||||
|
50%,
|
||||||
|
80%,
|
||||||
|
100% {
|
||||||
|
transform: translate(-50%, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
40% {
|
||||||
|
transform: translate(-50%, -30px);
|
||||||
|
}
|
||||||
|
|
||||||
|
60% {
|
||||||
|
transform: translate(-50%, -15px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.forum-type-ul {
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-pagination {
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-card /deep/ .el-card__body {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-item {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* .forum-type-li:first-child {
|
||||||
|
border-top: 1px solid rgba(179, 216, 255, 0.5);
|
||||||
|
} */
|
||||||
|
|
||||||
|
.forum-type-li {
|
||||||
|
border-bottom: 1px solid rgba(179, 216, 255, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.more {
|
||||||
|
text-align: center;
|
||||||
|
color: #3a8ee6;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.more:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
color: #3a8ee6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forum-type-li:hover {
|
||||||
|
background-color: rgba(213, 255, 255, 0.3);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.activeType {
|
||||||
|
background-color: rgba(58, 142, 230, 0.3);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
align-items: center;
|
||||||
|
margin: 15px 13px 0;
|
||||||
|
border-bottom: 1px solid rgba(250, 255, 179, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-item {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: 5px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag {
|
||||||
|
background-color: #ecf5ff;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: inline-block;
|
||||||
|
height: 22px;
|
||||||
|
padding: 0 10px;
|
||||||
|
line-height: 22px;
|
||||||
|
font-size: 10px;
|
||||||
|
color: #409eff;
|
||||||
|
border-radius: 4px;
|
||||||
|
white-space: nowrap;
|
||||||
|
border: 1px solid #409eff;
|
||||||
|
transition: 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sjx-outer {
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-top: 6px solid transparent;
|
||||||
|
border-bottom: 6px solid transparent;
|
||||||
|
border-right: 6px solid #409eff;
|
||||||
|
position: relative;
|
||||||
|
transition: 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sjx-inner {
|
||||||
|
border-top: 6px solid transparent;
|
||||||
|
border-bottom: 6px solid transparent;
|
||||||
|
border-right: 6px solid #ecf5ff;
|
||||||
|
top: -6px;
|
||||||
|
left: 1px;
|
||||||
|
position: absolute;
|
||||||
|
transition: 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-item:hover,
|
||||||
|
.activeTag {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag {
|
||||||
|
color: white;
|
||||||
|
background-color: #409eff;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sjx-inner {
|
||||||
|
border-right: 6px solid #409eff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forum-type-li {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recommend-forum {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-line-clamp: 1;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recommend-a {
|
||||||
|
border-bottom: 1px solid rgba(34, 36, 38, 0.15);
|
||||||
|
line-height: 40px;
|
||||||
|
display: block;
|
||||||
|
text-decoration: none;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recommend-a:hover {
|
||||||
|
color: #3a8ee6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.total {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
font-size: larger;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.titleIndex {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-icon-back {
|
||||||
|
font-weight: bolder;
|
||||||
|
color: #3a8ee6;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-icon-back:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forum-content:hover {
|
||||||
|
border-left: 5px solid #3a8ee6;
|
||||||
|
border-right: 5px solid #3a8ee6;
|
||||||
|
background-color: rgba(58, 142, 230, 0.3);
|
||||||
|
/* cursor: pointer; */
|
||||||
|
}
|
||||||
|
|
||||||
|
.forum-content {
|
||||||
|
padding: 10px;
|
||||||
|
height: auto;
|
||||||
|
border-bottom: 1px solid rgb(199, 163, 92);
|
||||||
|
/*border-bottom: 1px solid rgba(34, 36, 38, .15);*/
|
||||||
|
transition: 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-forum-content {
|
||||||
|
padding: 10px;
|
||||||
|
height: auto;
|
||||||
|
border-bottom: 1px solid rgb(199, 163, 92);
|
||||||
|
transition: 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-forum-content:hover {
|
||||||
|
border-left: 5px solid #3a8ee6;
|
||||||
|
border-right: 5px solid #3a8ee6;
|
||||||
|
background-color: rgba(58, 142, 230, 0.3);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-image {
|
||||||
|
border-radius: 5px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forum-info {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
align-items: center;
|
||||||
|
color: black;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notice-content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-info {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-right: 15px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
text-decoration: none;
|
||||||
|
color: #3a8ee6;
|
||||||
|
font-weight: bold;
|
||||||
|
word-break: keep-all;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forum-date {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
float: right;
|
||||||
|
margin-left: 5px;
|
||||||
|
width: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forum-views {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
float: right;
|
||||||
|
margin-left: 5px;
|
||||||
|
width: 180px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forum-type {
|
||||||
|
float: right;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forum-tag {
|
||||||
|
float: right;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 768px) {
|
||||||
|
.border {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tit {
|
||||||
|
font-size: 2rem;
|
||||||
|
width: 100%;
|
||||||
|
line-height: 50px;
|
||||||
|
letter-spacing: 2px;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.intro {
|
||||||
|
font-size: 1rem;
|
||||||
|
line-height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-pagination {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user