Ver código fonte

消息中心新增无token接口给OA服务定时同步消息调用

fuyuchuan 2 dias atrás
pai
commit
640f2f0b56

+ 11 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/MceReceiveController.java

@@ -127,6 +127,17 @@ public class MceReceiveController {
         return ApiResult.success();
     }
 
+    /**
+     * 消息发布-无需token
+     * @return
+     */
+    @PostMapping("/addMce")
+    ApiResult<Void> addNoToken(@RequestBody String mceNoToken) {
+        mceReceiveService.addNoToken(mceNoToken);
+        return ApiResult.success();
+    }
+
+
     /**
      * 删除消息及内容,并清空所有的消息接收表数据
      */

+ 5 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/MceReceiveService.java

@@ -39,4 +39,9 @@ public interface MceReceiveService extends CrudService<MceReceive> {
 
     CommonPage<MceReceiveResponseVO> getMceReceiveResponseVOList(Integer pageNumber, Integer pageSize);
 
+    /**
+     * 添加消息不带token
+     * @param mceReceive
+     */
+    void addNoToken(String mceReceive);
 }

+ 37 - 2
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/MceReceiveServiceImpl.java

@@ -257,7 +257,12 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
             mceRequestVO.setInfoTypeName(infoTypeName);
         }
 
-        Integer tenantId = userMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, mceRequestVO.getUserName()).select(SysUser::getTenantId)).getTenantId();
+        Integer tenantId = null;
+        try {
+            tenantId = userMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, mceRequestVO.getUserName()).select(SysUser::getTenantId)).getTenantId();
+        } catch (Exception e) {
+            log.error("获取用户租户ID失败,报错信息:{}, 未找到用户-{}-的租户",e.getMessage(), mceRequestVO.getUserName());
+        }
 
         // 获取当前租户的所有用户
         List<SysUser> userList = userMapper.tenantIdUserList(tenantId);
@@ -494,7 +499,12 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
             mceReceiveVO.put("infoTypeName", infoTypeName);
         }
 
-        Integer tenantId = userMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, mceReceiveVO.get("userName")).select(SysUser::getTenantId)).getTenantId();
+        Integer tenantId = null;
+        try {
+            tenantId = userMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, mceReceiveVO.get("userName")).select(SysUser::getTenantId)).getTenantId();
+        } catch (Exception e) {
+            log.error("获取用户租户ID失败,报错信息:{}, 未找到用户-{}-的租户",e.getMessage(), mceReceiveVO.get("userName"));
+        }
         List<SysUser> list = userMapper.tenantIdUserList(tenantId);
         // 获取用户昵称与真实姓名Map
         Map<String, String> userNameNickNameMap = list.stream().collect(Collectors.toMap(SysUser::getUserName, SysUser::getNickName));
@@ -642,4 +652,29 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
 
         return new CommonPage<>(returnList, page.getTotal(), page.getSize(), page.getCurrent());
     }
+
+    /**
+     * 新增消息-无需token
+     * @param mceNoToken
+     */
+    @Override
+    public void addNoToken(String mceNoToken) {
+        JSONObject json = JSONObject.parseObject(mceNoToken);
+        List<String> userNames = JSONObject.parseArray(json.get("userNames").toString(), String.class);
+
+        LambdaQueryWrapper<SysUser> lambdaQuery = Wrappers.lambdaQuery();
+        lambdaQuery.select(SysUser::getUserId)
+                .in(SysUser::getUserName, userNames);
+        List<Long> userIdList = userMapper.selectList(lambdaQuery).stream().map(SysUser::getUserId).collect(Collectors.toList());
+
+        MceRequestVO mceRequestVO = new MceRequestVO();
+        mceRequestVO.setUserIds(userIdList);
+        mceRequestVO.setInfoTitle(json.get("infoTitle").toString());
+        mceRequestVO.setInfoContent(json.get("infoContent").toString());
+        mceRequestVO.setInfoType(json.get("infoType").toString());
+        mceRequestVO.setInfoTypeName(json.get("infoTypeName").toString());
+        mceRequestVO.setId((Integer) json.get("id"));
+        mceRequestVO.setUserName(json.get("userName").toString());
+        addMceReceive(mceRequestVO);
+    }
 }