WIKI空间支持分页,页面展示优化
This commit is contained in:
@@ -24,11 +24,6 @@ import javax.sql.DataSource;
|
|||||||
@Configuration
|
@Configuration
|
||||||
public class MybatisPlusConfig {
|
public class MybatisPlusConfig {
|
||||||
|
|
||||||
/**
|
|
||||||
* sql日志
|
|
||||||
**/
|
|
||||||
private static final SqlLogInterceptor SQL_LOG_INTERCEPTOR = new SqlLogInterceptor();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据库配置
|
* 数据库配置
|
||||||
*/
|
*/
|
||||||
@@ -57,7 +52,7 @@ public class MybatisPlusConfig {
|
|||||||
public MybatisSqlSessionFactoryBean manageSqlSessionFactory() throws Exception {
|
public MybatisSqlSessionFactoryBean manageSqlSessionFactory() throws Exception {
|
||||||
MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
|
MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
|
||||||
sqlSessionFactoryBean.setDataSource(manageDatasource());
|
sqlSessionFactoryBean.setDataSource(manageDatasource());
|
||||||
sqlSessionFactoryBean.setPlugins(SQL_LOG_INTERCEPTOR, paginationInterceptor);
|
sqlSessionFactoryBean.setPlugins(new SqlLogInterceptor(), paginationInterceptor);
|
||||||
|
|
||||||
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
|
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
|
||||||
sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mapper/manage/*Mapper.xml"));
|
sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mapper/manage/*Mapper.xml"));
|
||||||
|
|||||||
@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||||||
*/
|
*/
|
||||||
public interface UserSettingService extends IService<UserSetting> {
|
public interface UserSettingService extends IService<UserSetting> {
|
||||||
|
|
||||||
|
String getMySettingValue(String name);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.zyplayer.doc.data.service.manage;
|
|||||||
import com.zyplayer.doc.data.repository.manage.entity.WikiSpaceFavorite;
|
import com.zyplayer.doc.data.repository.manage.entity.WikiSpaceFavorite;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 用户空间收藏记录表 服务类
|
* 用户空间收藏记录表 服务类
|
||||||
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||||||
*/
|
*/
|
||||||
public interface WikiSpaceFavoriteService extends IService<WikiSpaceFavorite> {
|
public interface WikiSpaceFavoriteService extends IService<WikiSpaceFavorite> {
|
||||||
|
|
||||||
|
List<WikiSpaceFavorite> myFavoriteSpaceList();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
package com.zyplayer.doc.data.service.manage.impl;
|
package com.zyplayer.doc.data.service.manage.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.zyplayer.doc.data.config.security.DocUserDetails;
|
||||||
|
import com.zyplayer.doc.data.config.security.DocUserUtil;
|
||||||
import com.zyplayer.doc.data.repository.manage.entity.UserSetting;
|
import com.zyplayer.doc.data.repository.manage.entity.UserSetting;
|
||||||
import com.zyplayer.doc.data.repository.manage.mapper.UserSettingMapper;
|
import com.zyplayer.doc.data.repository.manage.mapper.UserSettingMapper;
|
||||||
|
import com.zyplayer.doc.data.repository.support.consts.UserSettingConst;
|
||||||
import com.zyplayer.doc.data.service.manage.UserSettingService;
|
import com.zyplayer.doc.data.service.manage.UserSettingService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,4 +21,15 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class UserSettingServiceImpl extends ServiceImpl<UserSettingMapper, UserSetting> implements UserSettingService {
|
public class UserSettingServiceImpl extends ServiceImpl<UserSettingMapper, UserSetting> implements UserSettingService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getMySettingValue(String name) {
|
||||||
|
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||||
|
LambdaQueryWrapper<UserSetting> settingWrapper = new LambdaQueryWrapper<>();
|
||||||
|
settingWrapper.eq(UserSetting::getUserId, currentUser.getUserId());
|
||||||
|
settingWrapper.eq(UserSetting::getName, UserSettingConst.WIKI_ONLY_SHOW_FAVORITE);
|
||||||
|
settingWrapper.eq(UserSetting::getDelFlag, 0);
|
||||||
|
UserSetting userSetting = this.getOne(settingWrapper);
|
||||||
|
if (userSetting == null) return null;
|
||||||
|
return userSetting.getValue();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
package com.zyplayer.doc.data.service.manage.impl;
|
package com.zyplayer.doc.data.service.manage.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.zyplayer.doc.data.config.security.DocUserDetails;
|
||||||
|
import com.zyplayer.doc.data.config.security.DocUserUtil;
|
||||||
import com.zyplayer.doc.data.repository.manage.entity.WikiSpaceFavorite;
|
import com.zyplayer.doc.data.repository.manage.entity.WikiSpaceFavorite;
|
||||||
import com.zyplayer.doc.data.repository.manage.mapper.WikiSpaceFavoriteMapper;
|
import com.zyplayer.doc.data.repository.manage.mapper.WikiSpaceFavoriteMapper;
|
||||||
import com.zyplayer.doc.data.service.manage.WikiSpaceFavoriteService;
|
import com.zyplayer.doc.data.service.manage.WikiSpaceFavoriteService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 用户空间收藏记录表 服务实现类
|
* 用户空间收藏记录表 服务实现类
|
||||||
@@ -17,4 +22,12 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class WikiSpaceFavoriteServiceImpl extends ServiceImpl<WikiSpaceFavoriteMapper, WikiSpaceFavorite> implements WikiSpaceFavoriteService {
|
public class WikiSpaceFavoriteServiceImpl extends ServiceImpl<WikiSpaceFavoriteMapper, WikiSpaceFavorite> implements WikiSpaceFavoriteService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<WikiSpaceFavorite> myFavoriteSpaceList() {
|
||||||
|
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||||
|
LambdaQueryWrapper<WikiSpaceFavorite> favoriteWrapper = new LambdaQueryWrapper<>();
|
||||||
|
favoriteWrapper.eq(WikiSpaceFavorite::getUserId, currentUser.getUserId());
|
||||||
|
favoriteWrapper.eq(WikiSpaceFavorite::getDelFlag, 0);
|
||||||
|
return this.list(favoriteWrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,9 +13,7 @@
|
|||||||
<div>文档:<a target="_blank" href="http://doc.zyplayer.com/doc-wiki#/docs/w4eSzPWvQRSBvaCHZS8t6d">http://doc.zyplayer.com</a></div>
|
<div>文档:<a target="_blank" href="http://doc.zyplayer.com/doc-wiki#/docs/w4eSzPWvQRSBvaCHZS8t6d">http://doc.zyplayer.com</a></div>
|
||||||
<div>主页:<a target="_blank" href="https://gitee.com/zyplayer/zyplayer-doc">https://gitee.com/zyplayer/zyplayer-doc</a></div>
|
<div>主页:<a target="_blank" href="https://gitee.com/zyplayer/zyplayer-doc">https://gitee.com/zyplayer/zyplayer-doc</a></div>
|
||||||
<div>反馈:<a target="_blank" href="https://gitee.com/zyplayer/zyplayer-doc/issues">https://gitee.com/zyplayer/zyplayer-doc/issues</a></div>
|
<div>反馈:<a target="_blank" href="https://gitee.com/zyplayer/zyplayer-doc/issues">https://gitee.com/zyplayer/zyplayer-doc/issues</a></div>
|
||||||
<div>特性关注&技术交流QQ群:466363173</div>
|
<div>新功能关注&技术交流QQ群:466363173</div>
|
||||||
<el-divider content-position="left">UI/设计/开发/测试</el-divider>
|
|
||||||
<div><a target="_blank" href="http://zyplayer.com">暮光:城中城</a></div>
|
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="开源软件">
|
<el-tab-pane label="开源软件">
|
||||||
|
|||||||
@@ -470,7 +470,7 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.fold-btn {
|
.fold-btn {
|
||||||
color: #ccc;
|
color: #ccc !important;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,11 +16,7 @@
|
|||||||
<div>文档:<a target="_blank" href="http://doc.zyplayer.com/doc-wiki#/docs/w4eSzPWvQRSBvaCHZS8t6d">http://doc.zyplayer.com</a></div>
|
<div>文档:<a target="_blank" href="http://doc.zyplayer.com/doc-wiki#/docs/w4eSzPWvQRSBvaCHZS8t6d">http://doc.zyplayer.com</a></div>
|
||||||
<div>主页:<a target="_blank" href="https://gitee.com/zyplayer/zyplayer-doc">https://gitee.com/zyplayer/zyplayer-doc</a></div>
|
<div>主页:<a target="_blank" href="https://gitee.com/zyplayer/zyplayer-doc">https://gitee.com/zyplayer/zyplayer-doc</a></div>
|
||||||
<div>反馈:<a target="_blank" href="https://gitee.com/zyplayer/zyplayer-doc/issues">https://gitee.com/zyplayer/zyplayer-doc/issues</a></div>
|
<div>反馈:<a target="_blank" href="https://gitee.com/zyplayer/zyplayer-doc/issues">https://gitee.com/zyplayer/zyplayer-doc/issues</a></div>
|
||||||
<div>特性关注&技术交流QQ群:466363173</div>
|
<div>新功能关注&技术交流QQ群:466363173</div>
|
||||||
<el-divider content-position="left">UI/设计/开发/测试</el-divider>
|
|
||||||
<div>
|
|
||||||
<a target="_blank" href="http://zyplayer.com">暮光:城中城</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="开源软件">
|
<el-tab-pane label="开源软件">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div style="min-height: 100%" class="space-manage-vue">
|
<div style="min-height: 100%;" class="space-manage-vue">
|
||||||
<el-breadcrumb separator-class="el-icon-arrow-right" style="padding: 20px 10px">
|
<el-breadcrumb separator-class="el-icon-arrow-right" style="padding: 20px 10px">
|
||||||
<el-breadcrumb-item>WIKI文档</el-breadcrumb-item>
|
<el-breadcrumb-item>WIKI文档</el-breadcrumb-item>
|
||||||
<el-breadcrumb-item>空间管理</el-breadcrumb-item>
|
<el-breadcrumb-item>空间管理</el-breadcrumb-item>
|
||||||
@@ -48,9 +48,20 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
<div class="page-info-box">
|
||||||
|
<el-pagination
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
:page-sizes="[10, 30, 50]"
|
||||||
|
:page-size="10"
|
||||||
|
:current-page="searchParam.pageNum"
|
||||||
|
layout="prev, pager, next, jumper, sizes, total"
|
||||||
|
:total="totalCount">
|
||||||
|
</el-pagination>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--分组权限弹窗-->
|
<!--分组权限弹窗-->
|
||||||
<el-dialog title="权限管理" v-model="spaceAuthDialogVisible" width="900px">
|
<el-dialog title="权限管理" v-model="spaceAuthDialogVisible" width="900px" :close-on-click-modal="false">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-select v-model="spaceAuthNewGroupId" filterable placeholder="请选择分组" style="width: 750px; margin-right: 10px">
|
<el-select v-model="spaceAuthNewGroupId" filterable placeholder="请选择分组" style="width: 750px; margin-right: 10px">
|
||||||
<el-option v-for="item in searchGroupList" :key="item.id" :label="searchGroupMap[item.id]" :value="item.id"></el-option>
|
<el-option v-for="item in searchGroupList" :key="item.id" :label="searchGroupMap[item.id]" :value="item.id"></el-option>
|
||||||
@@ -167,9 +178,7 @@ const addSpaceAuthUserGroup = () => {
|
|||||||
}
|
}
|
||||||
const updateSpaceFavorite = (row) => {
|
const updateSpaceFavorite = (row) => {
|
||||||
let delFlag = row.favorite == 1 ? 1 : 0
|
let delFlag = row.favorite == 1 ? 1 : 0
|
||||||
pageApi
|
pageApi.spaceFavoriteUpdate({spaceId: row.id, delFlag: delFlag}).then((json) => {
|
||||||
.spaceFavoriteUpdate({spaceId: row.id, delFlag: delFlag})
|
|
||||||
.then((json) => {
|
|
||||||
row.favorite = row.favorite == 1 ? 0 : 1
|
row.favorite = row.favorite == 1 ? 0 : 1
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -183,9 +192,7 @@ const saveGroupSpaceAuth = () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const manageUserGroup = () => {
|
const manageUserGroup = () => {
|
||||||
let manageUrl =
|
let manageUrl = location.href.substring(0, location.href.indexOf('/doc-wiki')) + '#/console/userGroupList'
|
||||||
location.href.substring(0, location.href.indexOf('/doc-wiki')) +
|
|
||||||
'#/console/userGroupList'
|
|
||||||
window.open(manageUrl, '_blank')
|
window.open(manageUrl, '_blank')
|
||||||
}
|
}
|
||||||
const deleteGroupSpaceAuth = (row) => {
|
const deleteGroupSpaceAuth = (row) => {
|
||||||
@@ -199,9 +206,7 @@ const editSpaceAuth = (row) => {
|
|||||||
spaceAuthGroupList.value = []
|
spaceAuthGroupList.value = []
|
||||||
userApi.userGroupList().then((json) => {
|
userApi.userGroupList().then((json) => {
|
||||||
searchGroupList.value = json.data || []
|
searchGroupList.value = json.data || []
|
||||||
searchGroupList.value.forEach(
|
searchGroupList.value.forEach((item) => (searchGroupMap.value[item.id] = item.name))
|
||||||
(item) => (searchGroupMap.value[item.id] = item.name)
|
|
||||||
)
|
|
||||||
})
|
})
|
||||||
pageApi.spaceAuthList({spaceId: row.id}).then((json) => {
|
pageApi.spaceAuthList({spaceId: row.id}).then((json) => {
|
||||||
spaceAuthGroupList.value = json.data || []
|
spaceAuthGroupList.value = json.data || []
|
||||||
@@ -222,13 +227,30 @@ const deleteSpaceInfo = (row) => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
let totalCount = ref(0);
|
||||||
|
let searchParam = ref({
|
||||||
|
ignoreFavorite: 1,
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
});
|
||||||
const loadSpaceList = () => {
|
const loadSpaceList = () => {
|
||||||
spaceListLoading.value = true
|
spaceListLoading.value = true
|
||||||
pageApi.spaceList({ignoreFavorite: 1}).then((json) => {
|
pageApi.spaceList(searchParam.value).then((json) => {
|
||||||
spaceList.value = json.data || []
|
spaceList.value = json.data || []
|
||||||
|
if (searchParam.value.pageNum === 1) {
|
||||||
|
totalCount.value = json.total;
|
||||||
|
}
|
||||||
setTimeout(() => (spaceListLoading.value = false), 500)
|
setTimeout(() => (spaceListLoading.value = false), 500)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const handleSizeChange = (val) => {
|
||||||
|
searchParam.value.pageSize = val
|
||||||
|
loadSpaceList()
|
||||||
|
}
|
||||||
|
const handleCurrentChange = (val) => {
|
||||||
|
searchParam.value.pageNum = val
|
||||||
|
loadSpaceList()
|
||||||
|
}
|
||||||
const wikiOnlyShowFavoriteChange = () => {
|
const wikiOnlyShowFavoriteChange = () => {
|
||||||
let param = {
|
let param = {
|
||||||
name: 'wiki_only_show_favorite',
|
name: 'wiki_only_show_favorite',
|
||||||
@@ -253,6 +275,18 @@ const getSelfUserInfo = () => {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.space-manage-vue {
|
||||||
|
.page-info-box {
|
||||||
|
margin-top: 10px;
|
||||||
|
|
||||||
|
.el-pagination {
|
||||||
|
justify-content: end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.space-manage-vue .empty-news {
|
.space-manage-vue .empty-news {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
package com.zyplayer.doc.wiki.controller;
|
package com.zyplayer.doc.wiki.controller;
|
||||||
|
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.zyplayer.doc.core.annotation.AuthMan;
|
import com.zyplayer.doc.core.annotation.AuthMan;
|
||||||
import com.zyplayer.doc.core.json.DocResponseJson;
|
import com.zyplayer.doc.core.json.DocResponseJson;
|
||||||
import com.zyplayer.doc.core.json.ResponseJson;
|
import com.zyplayer.doc.core.json.ResponseJson;
|
||||||
@@ -25,16 +28,12 @@ import com.zyplayer.doc.wiki.framework.consts.WikiAuthType;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.math.NumberUtils;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.*;
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -56,36 +55,39 @@ public class WikiSpaceController {
|
|||||||
private final UserSettingService userSettingService;
|
private final UserSettingService userSettingService;
|
||||||
|
|
||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
public ResponseJson<List<WikiSpaceVo>> list(WikiSpace wikiSpace, Integer ignoreFavorite) {
|
public ResponseJson<List<WikiSpaceVo>> list(WikiSpace wikiSpace, Integer ignoreFavorite, Long pageNum, Long pageSize) {
|
||||||
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||||
UpdateWrapper<WikiSpace> wrapper = new UpdateWrapper<>();
|
LambdaQueryWrapper<WikiSpace> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq("del_flag", 0);
|
wrapper.eq(WikiSpace::getDelFlag, 0);
|
||||||
wrapper.eq(wikiSpace.getId() != null, "id", wikiSpace.getId());
|
wrapper.eq(wikiSpace.getId() != null, WikiSpace::getId, wikiSpace.getId());
|
||||||
wrapper.and(con -> con.and(conSub -> conSub.eq("type", 3).eq("create_user_id", currentUser.getUserId())).or().in("type", 1, 2));
|
wrapper.and(con -> con.and(conSub -> conSub.eq(WikiSpace::getType, 3).eq(WikiSpace::getCreateUserId, currentUser.getUserId())).or().in(WikiSpace::getType, 1, 2));
|
||||||
List<WikiSpace> spaceList = wikiSpaceService.list(wrapper);
|
// 收藏的空间
|
||||||
List<WikiSpaceVo> spaceVoList = spaceList.stream().map(WikiSpaceVo::new).collect(Collectors.toList());
|
List<WikiSpaceFavorite> favoriteList = wikiSpaceFavoriteService.myFavoriteSpaceList();
|
||||||
// 收藏
|
Set<Long> favoriteSpaceIds = favoriteList.stream().map(WikiSpaceFavorite::getSpaceId).collect(Collectors.toSet());
|
||||||
QueryWrapper<WikiSpaceFavorite> favoriteWrapper = new QueryWrapper<>();
|
// 只展示收藏的空间
|
||||||
favoriteWrapper.eq("user_id", currentUser.getUserId());
|
|
||||||
favoriteWrapper.eq("del_flag", 0);
|
|
||||||
List<WikiSpaceFavorite> favoriteList = wikiSpaceFavoriteService.list(favoriteWrapper);
|
|
||||||
Set<Long> spaceFavoriteMap = favoriteList.stream().map(WikiSpaceFavorite::getSpaceId).collect(Collectors.toSet());
|
|
||||||
for (WikiSpaceVo spaceVo : spaceVoList) {
|
|
||||||
spaceVo.setFavorite(spaceFavoriteMap.contains(spaceVo.getId()) ? 1 : 0);
|
|
||||||
}
|
|
||||||
// 设置
|
|
||||||
if (!Objects.equals(ignoreFavorite, 1)) {
|
if (!Objects.equals(ignoreFavorite, 1)) {
|
||||||
QueryWrapper<UserSetting> settingWrapper = new QueryWrapper<>();
|
String onlyShowFavorite = userSettingService.getMySettingValue(UserSettingConst.WIKI_ONLY_SHOW_FAVORITE);
|
||||||
settingWrapper.eq("user_id", currentUser.getUserId());
|
if (Objects.equals(onlyShowFavorite, "1")) {
|
||||||
settingWrapper.eq("name", UserSettingConst.WIKI_ONLY_SHOW_FAVORITE);
|
if (favoriteSpaceIds.isEmpty()) {
|
||||||
settingWrapper.eq("del_flag", 0);
|
return DocResponseJson.ok();
|
||||||
UserSetting userSetting = userSettingService.getOne(settingWrapper);
|
}
|
||||||
if (userSetting != null && Objects.equals(userSetting.getValue(), "1")) {
|
wrapper.in(WikiSpace::getId, favoriteSpaceIds);
|
||||||
List<WikiSpaceVo> onlySpaceVoList = spaceVoList.stream().filter(item -> Objects.equals(item.getFavorite(), 1)).collect(Collectors.toList());
|
|
||||||
return DocResponseJson.ok(onlySpaceVoList);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return DocResponseJson.ok(spaceVoList);
|
pageNum = Optional.ofNullable(pageNum).orElse(1L);
|
||||||
|
pageSize = Optional.ofNullable(pageSize).orElse(500L);
|
||||||
|
pageNum = Math.min(Math.max(pageNum, 1L), 1000);
|
||||||
|
pageSize = Math.min(Math.max(pageSize, 10L), 100);
|
||||||
|
IPage<WikiSpace> page = new Page<>(pageNum, pageSize, Objects.equals(pageNum, 1L));
|
||||||
|
wikiSpaceService.page(page, wrapper);
|
||||||
|
// 设置收藏状态
|
||||||
|
List<WikiSpaceVo> spaceVoList = page.getRecords().stream().map(WikiSpaceVo::new).collect(Collectors.toList());
|
||||||
|
for (WikiSpaceVo spaceVo : spaceVoList) {
|
||||||
|
spaceVo.setFavorite(favoriteSpaceIds.contains(spaceVo.getId()) ? 1 : 0);
|
||||||
|
}
|
||||||
|
DocResponseJson<List<WikiSpaceVo>> responseJson = DocResponseJson.ok(spaceVoList);
|
||||||
|
responseJson.setTotal(page.getTotal());
|
||||||
|
return responseJson;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/update")
|
@PostMapping("/update")
|
||||||
|
|||||||
Reference in New Issue
Block a user