1
0
mirror of https://github.com/FatttSnake/Pinnacle-OA.git synced 2026-04-05 23:11:24 +08:00

add the function of fuzzy query by senderIds had been completed

This commit is contained in:
cccccyb
2023-06-04 17:27:02 +08:00
parent 42168ab54c
commit 68e6625b26
9 changed files with 62 additions and 71 deletions

View File

@@ -8,10 +8,10 @@ import com.cfive.pinnacle.entity.common.ResponseCode;
import com.cfive.pinnacle.entity.common.ResponseResult;
import com.cfive.pinnacle.service.INoticeReceiveService;
import com.cfive.pinnacle.service.INoticeService;
import com.cfive.pinnacle.utils.WebUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -39,7 +39,8 @@ public class NoticeController {
//分页查询所有公告或分页模糊查询
@GetMapping("/page")
@PreAuthorize("hasAuthority('notice:manage:get')")
public ResponseResult<List<Notice>> selectPageNotice(Integer currentPage, Integer pageSize, String title, String type, String startTime, String endTime,String userName) {
public ResponseResult<List<Notice>> selectPageNotice(Integer currentPage, Integer pageSize, String title, String type, String startTime, String endTime,String userIdList) {
List<Long> userIds = WebUtil.convertStringToList(userIdList, Long.class);
Page<Notice> noticePage;
if (null != currentPage && null != pageSize) {
noticePage = PageDTO.of(currentPage, pageSize);
@@ -47,7 +48,7 @@ public class NoticeController {
// 不进行分页
noticePage = PageDTO.of(1, -1);
}
IPage<Notice> noticeIPage = noticeService.selectPageNotice(noticePage, title.trim(), type.trim(), startTime.trim(), endTime.trim(),userName.trim());
IPage<Notice> noticeIPage = noticeService.selectPageNotice(noticePage, title.trim(), type.trim(), startTime.trim(), endTime.trim(),userIds);
int code = noticeIPage.getRecords() != null ? ResponseCode.DATABASE_SELECT_OK : ResponseCode.DATABASE_SELECT_ERROR;
String msg = noticeIPage.getRecords() != null ? String.valueOf(noticeIPage.getTotal()) : "数据查询失败,请重试!";
return ResponseResult.build(code, msg, noticeIPage.getRecords());

View File

@@ -20,6 +20,6 @@ import java.util.List;
public interface NoticeMapper extends BaseMapper<Notice> {
Notice selectByNoticeId(Long nid);
IPage<Notice> selectPageNotice(IPage<?> page, String title, String type, LocalDateTime startTime, LocalDateTime endTime,String userName);
IPage<Notice> selectPageNotice(IPage<?> page, String title, String type, LocalDateTime startTime, LocalDateTime endTime,List<Long> userIdList);
}

View File

@@ -27,5 +27,5 @@ public interface INoticeService extends IService<Notice> {
Boolean addNotice(Notice notice);
IPage<Notice> selectPageNotice(IPage<Notice> page, String title, String type, String startTime, String endTime,String userName);
IPage<Notice> selectPageNotice(IPage<Notice> page, String title, String type, String startTime, String endTime,List<Long> userIdList);
}

View File

@@ -44,13 +44,13 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
}
@Override
public IPage<Notice> selectPageNotice(IPage<Notice> page, String title, String type, String startTime, String endTime,String userName) {
public IPage<Notice> selectPageNotice(IPage<Notice> page, String title, String type, String startTime, String endTime,List<Long> userIdList) {
LocalDateTime start=null,end=null;
if (startTime!=""&&endTime!=""){
start= LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
end = LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
return noticeMapper.selectPageNotice(page, title, type, start, end,userName);
return noticeMapper.selectPageNotice(page, title, type, start, end,userIdList);
}
@Override

View File

@@ -53,9 +53,9 @@
<if test="null != endTime">
and n.end_time &lt; #{endTime}
</if>
<if test="null!=userName and userName!=''">
and u.username = #{userName}
</if>
<foreach collection="userIdList" item="item" index="index" open="and u.id in (" separator="," close=")">
#{item}
</foreach>
and n.deleted = 0
and n.old = 0
</where>

View File

@@ -109,7 +109,7 @@ export default {
type: '',
startTime: '',
endTime: '',
userName: ''
userIdList: []
}
})
this.$emit('selectByCond')

View File

@@ -14,6 +14,7 @@
color: '#fff',
'font-size': '20px'
}"
@filter-change="handleFilterChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="75" align="center">
@@ -79,9 +80,8 @@
prop="sender.username"
label="发布者"
width="100"
column-key="sender.username"
:filters="filterSenderName"
:filter-method="filterTag"
column-key="senderId"
:filters="senderList"
filter-placement="bottom-end"
align="center"
>
@@ -150,7 +150,6 @@
</template>
<script lang="ts">
import _ from 'lodash'
import { mapState } from 'pinia'
import { useNoticeStore } from '@/store/notice'
import { COLOR_TOP, SIZE_ICON_MD, SIZE_ICON_SM } from '@/constants/Common.constants'
@@ -170,15 +169,11 @@ export default {
'currentPage',
'pageSize',
'multiDeleteSelection',
'search'
'search',
'senderList'
])
},
emits: ['clearFilter', 'handleDeleteById'],
data() {
return {
filterSenderName: []
}
},
emits: ['handleDeleteById', 'getNoticeSender', 'filterSender'],
props: [],
methods: {
SIZE_ICON_SM() {
@@ -203,20 +198,6 @@ export default {
return title
}
},
filterTag(value) {
noticeStore.$patch((state) => {
state.search.userName = value
})
noticeStore.selectAllNotice(
this.currentPage,
this.pageSize,
this.search.title,
this.search.type,
this.search.startTime,
this.search.endTime,
this.search.userName
)
},
formatDate(row, column) {
// 获取单元格数据
const data = row[column.property]
@@ -261,7 +242,7 @@ export default {
this.search.type,
this.search.startTime,
this.search.endTime,
this.search.userName
this.search.userIdList
)
},
handleCurrentChange(currentPage) {
@@ -276,31 +257,21 @@ export default {
this.search.type,
this.search.startTime,
this.search.endTime,
this.search.userName
this.search.userIdList
)
},
handleFilterChange(filters) {
noticeStore.$patch((state) => {
state.search.userIdList = filters.senderId
})
this.$emit('filterSender')
}
},
mounted() {
noticeStore.selectAllNotice(this.currentPage, this.pageSize, '', '', '', '', '')
noticeStore.selectAllNotice(this.currentPage, this.pageSize, '', '', '', '', [])
},
updated() {
this.$refs.tableRef.clearFilter(['sender.username'])
this.filterSenderName = []
const nameArray = []
if (!_.isEmpty(this.selectData)) {
for (let i = 0; i < this.selectData.length; i++) {
nameArray.push(this.selectData[i].sender.username)
}
const newArr = nameArray.filter((item, i, arr) => {
return arr.indexOf(item) === i
})
for (let j = 0; j < newArr.length; j++) {
const senderName = { text: '', value: '' }
senderName.text = newArr[j]
senderName.value = newArr[j]
this.filterSenderName.push(senderName)
}
}
this.$emit('getNoticeSender')
}
}
</script>

View File

@@ -37,6 +37,8 @@
</el-dialog>
<notice-manage-table
@handleDeleteById="handleDeleteById"
@getNoticeSender="getNoticeSender"
@filterSender="getLoading"
ref="manageTable"
></notice-manage-table>
</el-main>
@@ -92,7 +94,7 @@ export default {
'',
'',
'',
''
[]
)
} else if (response.data.code === 20034) {
ElMessage({
@@ -119,8 +121,9 @@ export default {
this.search.type,
this.search.startTime,
this.search.endTime,
this.search.userName
this.search.userIdList
)
// noticeStore.search.userIdList = []
},
deleteBatchByIds() {
const multiDeleteIds = []
@@ -147,7 +150,7 @@ export default {
'',
'',
'',
''
[]
)
} else if (response.data.code === 20034) {
ElMessage({
@@ -164,6 +167,20 @@ export default {
type: 'warning'
})
}
},
getNoticeSender() {
const senders = []
request.get('/user/notice').then((response) => {
for (let i = 0; i < response.data.data.length; i++) {
const senderName = { text: '', value: '' }
senderName.text = response.data.data[i].username
senderName.value = response.data.data[i].id
senders.push(senderName)
}
noticeStore.$patch((state) => {
state.senderList = senders
})
})
}
},
mounted() {
@@ -175,7 +192,8 @@ export default {
'currentPage',
'pageSize',
'multiDeleteSelection',
'search'
'search',
'senderList'
])
}
}

View File

@@ -53,7 +53,7 @@ export const useNoticeStore = defineStore('notice', {
type: '',
startTime: '',
endTime: '',
userName: ''
userIdList: []
},
selectData: [
{
@@ -91,6 +91,7 @@ export const useNoticeStore = defineStore('notice', {
currentViewPage: 'All',
hackReset: true,
departmentList: [],
senderList: [],
multiDeleteSelection: [],
noticeShowData: {
content: '',
@@ -121,14 +122,14 @@ export const useNoticeStore = defineStore('notice', {
},
getters: {},
actions: {
async selectAllNotice(
selectAllNotice(
currentPage: number,
pageSize: number,
title: string,
type: string,
startTime: string,
endTime: string,
userName: string
userIdList: []
) {
void request
.get('/notice/page', {
@@ -138,7 +139,7 @@ export const useNoticeStore = defineStore('notice', {
type,
startTime,
endTime,
userName
userIdList: userIdList.toString() + ''
})
.then((response) => {
if (response.data.code === 20021) {
@@ -177,8 +178,8 @@ export const useNoticeStore = defineStore('notice', {
this.departmentList = response.data.data
})
},
async handleAddNotice(addFormData: IAddNoticeData) {
await request.post('/notice', addFormData).then((response) => {
handleAddNotice(addFormData: IAddNoticeData) {
void request.post('/notice', addFormData).then((response) => {
if (response.data.code === 20022) {
this.dialogAddVisible = false
ElMessage({
@@ -192,10 +193,10 @@ export const useNoticeStore = defineStore('notice', {
})
}
})
await this.selectAllNotice(1, 5, '', '', '', '', '')
this.selectAllNotice(1, 5, '', '', '', '', [])
},
async handleUpdateNotice(updateNotice: IAddNoticeData) {
await request.put('/notice', updateNotice).then((response) => {
handleUpdateNotice(updateNotice: IAddNoticeData) {
void request.put('/notice', updateNotice).then((response) => {
if (response.data.code === 20023) {
this.dialogEditVisible = false
this.editFlag = false
@@ -210,7 +211,7 @@ export const useNoticeStore = defineStore('notice', {
})
}
})
await this.selectAllNotice(1, 5, '', '', '', '', '')
this.selectAllNotice(1, 5, '', '', '', '', [])
this.hackReset = false
},
async modifyNoticeIsRead(notice: INotice) {