Merge remote-tracking branch 'origin/master'

This commit is contained in:
梁琦涛
2024-07-25 10:27:16 +08:00
15 changed files with 58 additions and 42 deletions
@@ -1,14 +1,15 @@
package com.jero.modules.feishu.controller; package com.jero.modules.docking.feishu.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.modules.feishu.dto.BotMessageDto; import com.jero.modules.docking.feishu.dto.BotMessageDto;
import com.jero.modules.feishu.dto.InstanceDto; import com.jero.modules.docking.feishu.dto.InstanceDto;
import com.jero.modules.feishu.service.IFeiShuDockingService; import com.jero.modules.docking.feishu.service.IFeiShuDockingService;
import com.jero.modules.feishu.vo.definition.ApprovalsDefinitionVo; import com.jero.modules.docking.feishu.vo.definition.ApprovalsDefinitionVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
/** /**
@@ -1,4 +1,4 @@
package com.jero.modules.feishu.dto; package com.jero.modules.docking.feishu.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -1,4 +1,4 @@
package com.jero.modules.feishu.dto; package com.jero.modules.docking.feishu.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -1,10 +1,10 @@
package com.jero.modules.feishu.service; package com.jero.modules.docking.feishu.service;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.modules.feishu.dto.BotMessageDto; import com.jero.modules.docking.feishu.dto.BotMessageDto;
import com.jero.modules.feishu.dto.InstanceDto; import com.jero.modules.docking.feishu.dto.InstanceDto;
import com.jero.modules.feishu.vo.definition.ApprovalsDefinitionVo; import com.jero.modules.docking.feishu.vo.definition.ApprovalsDefinitionVo;
public interface IFeiShuDockingService { public interface IFeiShuDockingService {
@@ -1,4 +1,4 @@
package com.jero.modules.feishu.service.impl; package com.jero.modules.docking.feishu.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
@@ -12,14 +12,14 @@ import com.jero.common.system.util.JwtUtil;
import com.jero.common.system.vo.SysDictItemCore; import com.jero.common.system.vo.SysDictItemCore;
import com.jero.common.util.RedisUtil; import com.jero.common.util.RedisUtil;
import com.jero.common.util.oConvertUtils; import com.jero.common.util.oConvertUtils;
import com.jero.modules.feishu.dto.BotMessageDto; import com.jero.modules.docking.feishu.dto.BotMessageDto;
import com.jero.modules.feishu.dto.InstanceDto; import com.jero.modules.docking.feishu.dto.InstanceDto;
import com.jero.modules.feishu.service.IFeiShuDockingService; import com.jero.modules.docking.feishu.service.IFeiShuDockingService;
import com.jero.modules.feishu.vo.bot.BotMessageVo; import com.jero.modules.docking.feishu.vo.bot.BotMessageVo;
import com.jero.modules.feishu.vo.definition.*; import com.jero.modules.docking.feishu.vo.definition.*;
import com.jero.modules.feishu.vo.instance.ApprovalsInstanceVo; import com.jero.modules.docking.feishu.vo.instance.ApprovalsInstanceVo;
import com.jero.modules.feishu.vo.instance.InstanceLink; import com.jero.modules.docking.feishu.vo.instance.InstanceLink;
import com.jero.modules.feishu.vo.instance.InstanceTask; import com.jero.modules.docking.feishu.vo.instance.InstanceTask;
import com.jero.modules.system.entity.*; import com.jero.modules.system.entity.*;
import com.jero.modules.system.service.*; import com.jero.modules.system.service.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -35,7 +35,10 @@ import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder; import org.springframework.web.util.UriComponentsBuilder;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -249,7 +252,7 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
} }
} }
private ApprovalsInstanceVo buildApprovalsInstanceVo(InstanceDto instanceDto) { private ApprovalsInstanceVo buildApprovalsInstanceVo(InstanceDto instanceDto) throws Exception {
// 转换userId为飞书Id // 转换userId为飞书Id
// 发起人的id // 发起人的id
String promoterUserId = instanceDto.getPromoterUserId(); String promoterUserId = instanceDto.getPromoterUserId();
@@ -291,25 +294,38 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
if (StringUtils.isNotBlank(reviewPcLink)) { if (StringUtils.isNotBlank(reviewPcLink)) {
reviewPcLinkList = Arrays.asList(reviewPcLink.split(",")); reviewPcLinkList = Arrays.asList(reviewPcLink.split(","));
reviewPcLinkList = reviewPcLinkList.stream() reviewPcLinkList = reviewPcLinkList.stream()
.map(link -> url.replace("{REDIRECT_URI}", link)) .map(link -> {
.collect(Collectors.toList()); try {
String encodedLink = URLEncoder.encode(link, "UTF-8");
return url.replace("{REDIRECT_URI}", encodedLink);
} catch (UnsupportedEncodingException e) {
return null;
} }
}).collect(Collectors.toList());
}
// 审核人对应的 mobile 跳转地址 // 审核人对应的 mobile 跳转地址
String reviewMobileLink = instanceDto.getReviewMobileLink(); String reviewMobileLink = instanceDto.getReviewMobileLink();
List<String> reviewMobileLinkList = new ArrayList<>(); List<String> reviewMobileLinkList = new ArrayList<>();
if (StringUtils.isNotBlank(reviewMobileLink)) { if (StringUtils.isNotBlank(reviewMobileLink)) {
reviewMobileLinkList = Arrays.asList(reviewMobileLink.split(",")); reviewMobileLinkList = Arrays.asList(reviewMobileLink.split(","));
reviewMobileLinkList = reviewMobileLinkList.stream() reviewMobileLinkList = reviewMobileLinkList.stream()
.map(link -> url.replace("{REDIRECT_URI}", link)) .map(link -> {
.collect(Collectors.toList()); try {
String encodedLink = URLEncoder.encode(link, "UTF-8");
return url.replace("{REDIRECT_URI}", encodedLink);
} catch (UnsupportedEncodingException e) {
return null;
}
}).collect(Collectors.toList());
} }
// 发起人对应的pc的跳转地址 // 发起人对应的pc的跳转地址
String promoterPcLink = instanceDto.getPromoterPcLink(); String promoterPcLink = URLEncoder.encode(instanceDto.getPromoterPcLink(), "UTF-8");
if (StringUtils.isNotBlank(promoterPcLink)) { if (StringUtils.isNotBlank(promoterPcLink)) {
promoterPcLink = url.replace("{REDIRECT_URI}", promoterPcLink); promoterPcLink = url.replace("{REDIRECT_URI}", promoterPcLink);
} }
// 发起人移动端的跳转地址 // 发起人移动端的跳转地址
String promoterMobileLink = instanceDto.getPromoterMobileLink(); String promoterMobileLink = URLEncoder.encode(instanceDto.getPromoterMobileLink(), "UTF-8");
if (StringUtils.isNotBlank(promoterMobileLink)) { if (StringUtils.isNotBlank(promoterMobileLink)) {
promoterMobileLink = url.replace("{REDIRECT_URI}", promoterMobileLink); promoterMobileLink = url.replace("{REDIRECT_URI}", promoterMobileLink);
} }
@@ -403,7 +419,8 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
return; return;
} }
// 将url替换为单点登录的地址 // 将url替换为单点登录的地址
String hrefUrl = botMessageDto.getHrefUrl(); // 使用 URL 编码来处理特殊字符,将url替换为单点登录的地址
String hrefUrl = URLEncoder.encode(botMessageDto.getHrefUrl(), "UTF-8");
if (StringUtils.isNotBlank(hrefUrl)) { if (StringUtils.isNotBlank(hrefUrl)) {
hrefUrl = signLoginUrl.replace("{REDIRECT_URI}", hrefUrl); hrefUrl = signLoginUrl.replace("{REDIRECT_URI}", hrefUrl);
} }
@@ -570,7 +587,7 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
return result; return result;
} }
private String translateDictValue(String code, String text, String table, String key, List<com.jero.common.system.vo.SysDictItemCore> listDict) { private String translateDictValue(String code, String text, String table, String key, List<SysDictItemCore> listDict) {
if (oConvertUtils.isEmpty(key)) { if (oConvertUtils.isEmpty(key)) {
return null; return null;
} }
@@ -1,4 +1,4 @@
package com.jero.modules.feishu.vo.bot; package com.jero.modules.docking.feishu.vo.bot;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -1,4 +1,4 @@
package com.jero.modules.feishu.vo.definition; package com.jero.modules.docking.feishu.vo.definition;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -1,4 +1,4 @@
package com.jero.modules.feishu.vo.definition; package com.jero.modules.docking.feishu.vo.definition;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -1,4 +1,4 @@
package com.jero.modules.feishu.vo.definition; package com.jero.modules.docking.feishu.vo.definition;
import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@@ -1,4 +1,4 @@
package com.jero.modules.feishu.vo.definition; package com.jero.modules.docking.feishu.vo.definition;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -1,4 +1,4 @@
package com.jero.modules.feishu.vo.definition; package com.jero.modules.docking.feishu.vo.definition;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -1,6 +1,6 @@
package com.jero.modules.feishu.vo.instance; package com.jero.modules.docking.feishu.vo.instance;
import com.jero.modules.feishu.vo.definition.DefinitionI18nResources; import com.jero.modules.docking.feishu.vo.definition.DefinitionI18nResources;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -1,4 +1,4 @@
package com.jero.modules.feishu.vo.instance; package com.jero.modules.docking.feishu.vo.instance;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -1,4 +1,4 @@
package com.jero.modules.feishu.vo.instance; package com.jero.modules.docking.feishu.vo.instance;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -1,10 +1,8 @@
package com.jero.modules.feishu.vo.instance; package com.jero.modules.docking.feishu.vo.instance;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* 任务列表 * 任务列表
*/ */