From e968810260747b55f1510258d19de2723fcf90b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Wed, 4 Sep 2024 22:09:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98-=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E5=85=AC=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysAnnouncementController.java | 5 +- .../system/controller/SysUserController.java | 22 + .../modules/system/mapper/SysUserMapper.java | 9 + .../system/mapper/xml/SysUserMapper.xml | 26 ++ .../system/service/ISysUserService.java | 12 +- .../service/impl/SysUserServiceImpl.java | 11 + jeecgboot-vue3/src/api/common/api.ts | 9 + .../src/components/Form/src/componentMap.ts | 2 + .../src/jeecg/components/JSelectExpert.vue | 222 +++++++++ .../components/modal/ExpertSelectModal.vue | 293 ++++++++++++ .../src/components/Form/src/types/index.ts | 3 +- .../src/views/system/notice/DetailModal.vue | 45 +- .../src/views/system/notice/NoticeModal.vue | 102 ++-- .../src/views/system/notice/index.vue | 438 +++++++++++------- .../src/views/system/notice/notice.data.ts | 48 +- 15 files changed, 999 insertions(+), 248 deletions(-) create mode 100644 jeecgboot-vue3/src/components/Form/src/jeecg/components/JSelectExpert.vue create mode 100644 jeecgboot-vue3/src/components/Form/src/jeecg/components/modal/ExpertSelectModal.vue diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java index aa07a9f..772273c 100644 --- a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java +++ b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java @@ -117,6 +117,7 @@ public class SysAnnouncementController { Result> result = new Result>(); sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0.toString()); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sysAnnouncement, req.getParameterMap()); + queryWrapper.orderByDesc("create_time"); Page page = new Page(pageNo,pageSize); IPage pageList = sysAnnouncementService.page(page, queryWrapper); result.setSuccess(true); @@ -256,7 +257,7 @@ public class SysAnnouncementController { sysAnnouncement.setSender(currentUserName); boolean ok = sysAnnouncementService.updateById(sysAnnouncement); if(ok) { - result.success("系统通知推送成功"); + result.success("该通知推送成功"); if(sysAnnouncement.getMsgType().equals(CommonConstant.MSG_TYPE_ALL)) { // 补全公告和用户之前的关系 sysAnnouncementService.batchInsertSysAnnouncementSend(sysAnnouncement.getId(), sysAnnouncement.getTenantId()); @@ -315,7 +316,7 @@ public class SysAnnouncementController { sysAnnouncement.setCancelTime(new Date()); boolean ok = sysAnnouncementService.updateById(sysAnnouncement); if(ok) { - result.success("该系统通知撤销成功"); + result.success("该通知撤销成功"); if (oConvertUtils.isNotEmpty(sysAnnouncement.getDtTaskId())) { try { dingtalkService.recallMessage(sysAnnouncement.getDtTaskId()); diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java index daf46ea..2d1c788 100644 --- a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java +++ b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java @@ -133,6 +133,28 @@ public class SysUserController { return sysUserService.queryPageList(req, queryWrapper, pageSize, pageNo); } + /** + * 获取租户下专家数据 + * @param user + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @RequestMapping(value = "/expertList", method = RequestMethod.GET) + public Result> queryExpertPageList(SysUser user,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) { + List userIds = new ArrayList<>(); + //------------------------------------------------------------------------------------------------ + //是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】 + if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) { + String tenantId = oConvertUtils.getString(TenantContext.getTenant(), "-1"); + userIds = userTenantService.getUserIdsByTenantId(Integer.valueOf(tenantId)); + } + //------------------------------------------------------------------------------------------------ + return sysUserService.queryExpertPageList(pageSize, pageNo, userIds, req); + } + /** * 获取系统用户数据(查询全部用户,不做租户隔离) * diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java index 568e1f8..a2b451c 100644 --- a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java +++ b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java @@ -222,4 +222,13 @@ public interface SysUserMapper extends BaseMapper { */ @Select("select id,phone from sys_user where phone = #{phone} and username = #{username}") SysUser getUserByNameAndPhone(@Param("phone") String phone, @Param("username") String username); + + /** + * 根据用户Ids,查询橘色下用户信息 + * @param userIds + * @param username 用户账户名称 + * @param realname 用户姓名 + * @return + */ + IPage queryExpertPageList(Page page,@Param("userIds")List userIds,@Param("username") String username,@Param("realname") String realname); } diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml index 2472f75..245c159 100644 --- a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml +++ b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml @@ -298,4 +298,30 @@ and sut.tenant_id=#{tenantId} and sut.status = '1' + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java index 8a9a0b7..949e816 100644 --- a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java +++ b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java @@ -43,7 +43,17 @@ public interface ISysUserService extends IService { * @return */ Result> queryPageList(HttpServletRequest req, QueryWrapper queryWrapper, Integer pageSize, Integer pageNo); - + + /** + * 查询专家数据列表 + * + * @param pageSize + * @param pageNo + * @param req + * @return + */ + Result> queryExpertPageList(Integer pageSize, Integer pageNo,List userIds, HttpServletRequest req); + /** * 重置密码 * diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 9a3f423..2e48692 100644 --- a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -233,6 +233,17 @@ public class SysUserServiceImpl extends ServiceImpl impl return result; } + @Override + public Result> queryExpertPageList(Integer pageSize, Integer pageNo,List userIds, HttpServletRequest req) { + String username = req.getParameter("username"); + String realname = req.getParameter("realname"); + Result> result = new Result>(); + Page page = new Page(pageNo, pageSize); + IPage pageList = userMapper.queryExpertPageList(page, userIds, username, realname); + result.setSuccess(true); + result.setResult(pageList); + return result; + } @Override @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true) diff --git a/jeecgboot-vue3/src/api/common/api.ts b/jeecgboot-vue3/src/api/common/api.ts index 47d5cfb..c21f493 100644 --- a/jeecgboot-vue3/src/api/common/api.ts +++ b/jeecgboot-vue3/src/api/common/api.ts @@ -14,6 +14,7 @@ enum Api { getDictItems = '/sys/dict/getDictItems/', getTableList = '/sys/user/queryUserComponentData', getCategoryData = '/sys/category/loadAllData', + expertList = '/sys/user/expertList', } /** @@ -37,6 +38,14 @@ export const getUserList = (params) => { return defHttp.get({ url: Api.userList, params }); }; +/** + * 专家列表 + * @param params + */ +export const getExpertList = (params) => { + return defHttp.get({ url: Api.expertList, params }); +}; + /** * 角色列表 * @param params diff --git a/jeecgboot-vue3/src/components/Form/src/componentMap.ts b/jeecgboot-vue3/src/components/Form/src/componentMap.ts index 2e17b62..3c4a30c 100644 --- a/jeecgboot-vue3/src/components/Form/src/componentMap.ts +++ b/jeecgboot-vue3/src/components/Form/src/componentMap.ts @@ -39,6 +39,7 @@ import { CountdownInput } from '/@/components/CountDown'; //自定义组件 // import JAreaLinkage from './jeecg/components/JAreaLinkage.vue'; import JSelectUser from './jeecg/components/JSelectUser.vue'; +import JSelectExpert from './jeecg/components/JSelectExpert.vue'; import JSelectPosition from './jeecg/components/JSelectPosition.vue'; import JSelectRole from './jeecg/components/JSelectRole.vue'; import JImageUpload from './jeecg/components/JImageUpload.vue'; @@ -122,6 +123,7 @@ componentMap.set( ); componentMap.set('JSelectPosition', JSelectPosition); componentMap.set('JSelectUser', JSelectUser); +componentMap.set('JSelectExpert', JSelectExpert); componentMap.set('JSelectRole', JSelectRole); componentMap.set('JImageUpload', JImageUpload); componentMap.set('JDictSelectTag', JDictSelectTag); diff --git a/jeecgboot-vue3/src/components/Form/src/jeecg/components/JSelectExpert.vue b/jeecgboot-vue3/src/components/Form/src/jeecg/components/JSelectExpert.vue new file mode 100644 index 0000000..39cf514 --- /dev/null +++ b/jeecgboot-vue3/src/components/Form/src/jeecg/components/JSelectExpert.vue @@ -0,0 +1,222 @@ + + + + diff --git a/jeecgboot-vue3/src/components/Form/src/jeecg/components/modal/ExpertSelectModal.vue b/jeecgboot-vue3/src/components/Form/src/jeecg/components/modal/ExpertSelectModal.vue new file mode 100644 index 0000000..e54a054 --- /dev/null +++ b/jeecgboot-vue3/src/components/Form/src/jeecg/components/modal/ExpertSelectModal.vue @@ -0,0 +1,293 @@ + + + diff --git a/jeecgboot-vue3/src/components/Form/src/types/index.ts b/jeecgboot-vue3/src/components/Form/src/types/index.ts index 560c949..57c2f0d 100644 --- a/jeecgboot-vue3/src/components/Form/src/types/index.ts +++ b/jeecgboot-vue3/src/components/Form/src/types/index.ts @@ -118,6 +118,7 @@ export type ComponentType = | 'JSelectPosition' | 'JSelectRole' | 'JSelectUser' + | 'JSelectExpert' | 'JImageUpload' | 'JDictSelectTag' | 'JSelectDept' @@ -157,4 +158,4 @@ export type ComponentType = | 'RangeTime' | 'JRangeNumber' | 'JInputSelect'; - + diff --git a/jeecgboot-vue3/src/views/system/notice/DetailModal.vue b/jeecgboot-vue3/src/views/system/notice/DetailModal.vue index d6b258a..c1771ef 100644 --- a/jeecgboot-vue3/src/views/system/notice/DetailModal.vue +++ b/jeecgboot-vue3/src/views/system/notice/DetailModal.vue @@ -1,24 +1,39 @@