Browse Source

新增微信公众号OA审批回调地址

fuyuchuan 3 days ago
parent
commit
21a68f69cf

+ 10 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/MceRequestVO.java

@@ -86,6 +86,16 @@ public class MceRequestVO  extends BaseEntity {
      */
     private String realName;
 
+    /**
+     * oa跳转类型 (todo我的待办、me我发起的、copy抄送我的)
+     */
+    String oaType;
+
+    /**
+     * 实例Id
+     */
+    String instanceId;
+
     @Override
     public String toString() {
         ObjectMapper objectMapper = new ObjectMapper();

+ 1 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/constant/constant.java

@@ -28,6 +28,7 @@ public class constant {
     // 微信公众号的消息回调地址(这儿可根据业务需求自定义动作,可选)
     public static final String WE_CHAT_CUSTOMER_CALL_URL = "https://manager.usky.cn/mobile/#/pages/common/appMessage/index?type=%s&typeName=%s&id=%s";
     public static final String WE_CHAT_CUSTOMER_CALL_URL1 = "https://manager.usky.cn/mobile/#/pages/common/appMessage/index?type=%s&id=%s";
+    public static final String WE_CHAT_CUSTOMER_CALL_URL3 = "https://manager.usky.cn/mobile/#/pages/common/appMessage/index?type=%s&typeName=%s&id=%s&oaType%s&instanceId%s";
     // 微信公众号的主题颜色
     public static final String WE_CHAT_TOP_COLOR = "#A349A4";
     // 微信公众号微信用户授权地址

+ 6 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/MceContentServiceImpl.java

@@ -110,6 +110,12 @@ public class MceContentServiceImpl extends AbstractCrudService<MceContentMapper,
             if (StringUtils.isNotEmpty(mceReceiveVO.getRealName())) {
                 sendWeChatMessageRequestVO.setRealName(mceReceiveVO.getRealName());
             }
+            if (StringUtils.isNotEmpty(mceReceiveVO.getOaType())) {
+                sendWeChatMessageRequestVO.setOaType(mceReceiveVO.getOaType());
+            }
+            if (StringUtils.isNotEmpty(mceReceiveVO.getInstanceId())) {
+                sendWeChatMessageRequestVO.setInstanceId(mceReceiveVO.getInstanceId());
+            }
             mceMbuserService.sendWeChatMessage(sendWeChatMessageRequestVO);
         }
     }

+ 3 - 1
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/MceMbuserServiceImpl.java

@@ -189,7 +189,9 @@ public class MceMbuserServiceImpl extends AbstractCrudService<MceMbuserMapper, M
         }
 
         // 回调地址
-        if (Objects.nonNull(requestVO.getInfoTypeName())) {
+        if (Objects.nonNull(requestVO.getInfoTypeName()) && "3".equals(requestVO.getInfoType())) {
+            tUrl = String.format(constant.WE_CHAT_CUSTOMER_CALL_URL3, requestVO.getInfoType(), requestVO.getInfoTypeName(), infoId, requestVO.getOaType(), requestVO.getInstanceId());
+        } else if (Objects.nonNull(requestVO.getInfoTypeName())) {
             tUrl = String.format(constant.WE_CHAT_CUSTOMER_CALL_URL, requestVO.getInfoType(), requestVO.getInfoTypeName(), infoId);
         } else {
             tUrl = String.format(constant.WE_CHAT_CUSTOMER_CALL_URL1, requestVO.getInfoType(), infoId);

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

@@ -82,7 +82,7 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
             LambdaQueryWrapper<MceReceive> lambdaQuery = Wrappers.lambdaQuery();
             lambdaQuery.select(MceReceive::getId, MceReceive::getInfoType,
                             MceReceive::getContentId, MceReceive::getReadFlag, MceReceive::getCreateTime,
-                            MceReceive::getReceiverId, MceReceive::getModuleId, MceReceive::getCreateBy)
+                            MceReceive::getReceiverId, MceReceive::getModuleId, MceReceive::getCreateBy, MceReceive::getIssuerName)
                     .between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime), MceReceive::getCreateTime,
                             startTime, endTime)
                     .eq(StringUtils.isNotBlank(infoType), MceReceive::getInfoType, infoType)
@@ -253,7 +253,7 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
     @Override
     public void addMceReceive(MceRequestVO mceRequestVO) {
 
-        System.out.println(mceRequestVO.toString());
+        log.info("本次发送消息内容{}", mceRequestVO.toString());
 
         // 登录成功 infoType 为 0,只给登录用户发送公众号消息
         if ("0".equals(mceRequestVO.getInfoType())) {
@@ -274,6 +274,7 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
             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());
+            return;
         }
 
         // 获取当前租户的所有用户
@@ -288,13 +289,13 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
 
         LocalDateTime currentTime = LocalDateTime.now();
         List<Long> userIdList = new ArrayList<>();
-        MceContent contentEntity = new MceContent();
-        Integer generatedContentId = 0;
+        Integer generatedContentId = null;
 
         // 遍历用户列表,处理消息内容
         for (SysUser user : userList) {
             userIdList.add(user.getUserId());
             if (mceRequestVO.getUserName().equals(user.getUserName())) {
+                MceContent contentEntity = new MceContent();
                 contentEntity.setInfoTitle(mceRequestVO.getInfoTitle());
                 contentEntity.setInfoContent(mceRequestVO.getInfoContent());
                 contentEntity.setInfoType(mceRequestVO.getInfoType());
@@ -302,11 +303,17 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
                 contentEntity.setCreateTime(currentTime);
                 contentEntity.setDeptId(user.getDeptId().intValue());
                 contentEntity.setTenantId(user.getTenantId());
-                mceContentService.save(contentEntity);
+                boolean save = mceContentService.save(contentEntity);
+                if (!save) {
+                    log.error("消息内容保存失败,用户:{},消息内容:{}", user.getUserName(), contentEntity);
+                    continue;
+                }
                 generatedContentId = contentEntity.getId();
             }
         }
 
+
+
         // 筛选符合用户ID条件的用户
         List<Long> targetUserIds = mceRequestVO.getUserIds();
         userIdList.retainAll(targetUserIds);

+ 10 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/vo/SendWeChatMessageRequestVO.java

@@ -74,4 +74,14 @@ public class SendWeChatMessageRequestVO {
      * 登录人真实姓名
      */
     String realName;
+
+    /**
+     * oa跳转类型 (todo我的待办、me我发起的、copy抄送我的)
+     */
+    String oaType;
+
+    /**
+     * 实例Id
+     */
+    String instanceId;
 }