diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/controller/FeiShuDockingController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/controller/FeiShuDockingController.java similarity index 87% rename from laws-modules/src/main/java/com/jero/modules/feishu/controller/FeiShuDockingController.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/controller/FeiShuDockingController.java index 6c28e09a..cb0d26e4 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/controller/FeiShuDockingController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/controller/FeiShuDockingController.java @@ -1,14 +1,15 @@ -package com.jero.modules.feishu.controller; +package com.jero.modules.docking.feishu.controller; import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; -import com.jero.modules.feishu.dto.BotMessageDto; -import com.jero.modules.feishu.dto.InstanceDto; -import com.jero.modules.feishu.service.IFeiShuDockingService; -import com.jero.modules.feishu.vo.definition.ApprovalsDefinitionVo; +import com.jero.modules.docking.feishu.dto.BotMessageDto; +import com.jero.modules.docking.feishu.dto.InstanceDto; +import com.jero.modules.docking.feishu.service.IFeiShuDockingService; +import com.jero.modules.docking.feishu.vo.definition.ApprovalsDefinitionVo; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; + import javax.annotation.Resource; /** diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/dto/BotMessageDto.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/dto/BotMessageDto.java similarity index 93% rename from laws-modules/src/main/java/com/jero/modules/feishu/dto/BotMessageDto.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/dto/BotMessageDto.java index ff3df206..22272e7a 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/dto/BotMessageDto.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/dto/BotMessageDto.java @@ -1,4 +1,4 @@ -package com.jero.modules.feishu.dto; +package com.jero.modules.docking.feishu.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/dto/InstanceDto.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/dto/InstanceDto.java similarity index 97% rename from laws-modules/src/main/java/com/jero/modules/feishu/dto/InstanceDto.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/dto/InstanceDto.java index c96ddec9..1427f433 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/dto/InstanceDto.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/dto/InstanceDto.java @@ -1,4 +1,4 @@ -package com.jero.modules.feishu.dto; +package com.jero.modules.docking.feishu.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/service/IFeiShuDockingService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/IFeiShuDockingService.java similarity index 80% rename from laws-modules/src/main/java/com/jero/modules/feishu/service/IFeiShuDockingService.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/IFeiShuDockingService.java index 39d37bcb..c80eb14b 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/service/IFeiShuDockingService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/IFeiShuDockingService.java @@ -1,10 +1,10 @@ -package com.jero.modules.feishu.service; +package com.jero.modules.docking.feishu.service; import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; -import com.jero.modules.feishu.dto.BotMessageDto; -import com.jero.modules.feishu.dto.InstanceDto; -import com.jero.modules.feishu.vo.definition.ApprovalsDefinitionVo; +import com.jero.modules.docking.feishu.dto.BotMessageDto; +import com.jero.modules.docking.feishu.dto.InstanceDto; +import com.jero.modules.docking.feishu.vo.definition.ApprovalsDefinitionVo; public interface IFeiShuDockingService { diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/service/impl/FeiShuDockingServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/impl/FeiShuDockingServiceImpl.java similarity index 93% rename from laws-modules/src/main/java/com/jero/modules/feishu/service/impl/FeiShuDockingServiceImpl.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/impl/FeiShuDockingServiceImpl.java index dd7b5e9f..4390a10c 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/service/impl/FeiShuDockingServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/impl/FeiShuDockingServiceImpl.java @@ -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.JSONArray; @@ -12,14 +12,14 @@ import com.jero.common.system.util.JwtUtil; import com.jero.common.system.vo.SysDictItemCore; import com.jero.common.util.RedisUtil; import com.jero.common.util.oConvertUtils; -import com.jero.modules.feishu.dto.BotMessageDto; -import com.jero.modules.feishu.dto.InstanceDto; -import com.jero.modules.feishu.service.IFeiShuDockingService; -import com.jero.modules.feishu.vo.bot.BotMessageVo; -import com.jero.modules.feishu.vo.definition.*; -import com.jero.modules.feishu.vo.instance.ApprovalsInstanceVo; -import com.jero.modules.feishu.vo.instance.InstanceLink; -import com.jero.modules.feishu.vo.instance.InstanceTask; +import com.jero.modules.docking.feishu.dto.BotMessageDto; +import com.jero.modules.docking.feishu.dto.InstanceDto; +import com.jero.modules.docking.feishu.service.IFeiShuDockingService; +import com.jero.modules.docking.feishu.vo.bot.BotMessageVo; +import com.jero.modules.docking.feishu.vo.definition.*; +import com.jero.modules.docking.feishu.vo.instance.ApprovalsInstanceVo; +import com.jero.modules.docking.feishu.vo.instance.InstanceLink; +import com.jero.modules.docking.feishu.vo.instance.InstanceTask; import com.jero.modules.system.entity.*; import com.jero.modules.system.service.*; import lombok.extern.slf4j.Slf4j; @@ -35,7 +35,10 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; + import javax.annotation.Resource; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.util.*; 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 // 发起人的id String promoterUserId = instanceDto.getPromoterUserId(); @@ -291,25 +294,38 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService { if (StringUtils.isNotBlank(reviewPcLink)) { reviewPcLinkList = Arrays.asList(reviewPcLink.split(",")); reviewPcLinkList = reviewPcLinkList.stream() - .map(link -> url.replace("{REDIRECT_URI}", link)) - .collect(Collectors.toList()); + .map(link -> { + try { + String encodedLink = URLEncoder.encode(link, "UTF-8"); + return url.replace("{REDIRECT_URI}", encodedLink); + } catch (UnsupportedEncodingException e) { + return null; + } + }).collect(Collectors.toList()); } + // 审核人对应的 mobile 跳转地址 String reviewMobileLink = instanceDto.getReviewMobileLink(); List reviewMobileLinkList = new ArrayList<>(); if (StringUtils.isNotBlank(reviewMobileLink)) { reviewMobileLinkList = Arrays.asList(reviewMobileLink.split(",")); reviewMobileLinkList = reviewMobileLinkList.stream() - .map(link -> url.replace("{REDIRECT_URI}", link)) - .collect(Collectors.toList()); + .map(link -> { + try { + String encodedLink = URLEncoder.encode(link, "UTF-8"); + return url.replace("{REDIRECT_URI}", encodedLink); + } catch (UnsupportedEncodingException e) { + return null; + } + }).collect(Collectors.toList()); } // 发起人对应的pc的跳转地址 - String promoterPcLink = instanceDto.getPromoterPcLink(); + String promoterPcLink = URLEncoder.encode(instanceDto.getPromoterPcLink(), "UTF-8"); if (StringUtils.isNotBlank(promoterPcLink)) { promoterPcLink = url.replace("{REDIRECT_URI}", promoterPcLink); } // 发起人移动端的跳转地址 - String promoterMobileLink = instanceDto.getPromoterMobileLink(); + String promoterMobileLink = URLEncoder.encode(instanceDto.getPromoterMobileLink(), "UTF-8"); if (StringUtils.isNotBlank(promoterMobileLink)) { promoterMobileLink = url.replace("{REDIRECT_URI}", promoterMobileLink); } @@ -403,7 +419,8 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService { return; } // 将url替换为单点登录的地址 - String hrefUrl = botMessageDto.getHrefUrl(); + // 使用 URL 编码来处理特殊字符,将url替换为单点登录的地址 + String hrefUrl = URLEncoder.encode(botMessageDto.getHrefUrl(), "UTF-8"); if (StringUtils.isNotBlank(hrefUrl)) { hrefUrl = signLoginUrl.replace("{REDIRECT_URI}", hrefUrl); } @@ -570,7 +587,7 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService { return result; } - private String translateDictValue(String code, String text, String table, String key, List listDict) { + private String translateDictValue(String code, String text, String table, String key, List listDict) { if (oConvertUtils.isEmpty(key)) { return null; } diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/vo/bot/BotMessageVo.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/bot/BotMessageVo.java similarity index 94% rename from laws-modules/src/main/java/com/jero/modules/feishu/vo/bot/BotMessageVo.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/bot/BotMessageVo.java index 5178f3d0..dee4ac8b 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/vo/bot/BotMessageVo.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/bot/BotMessageVo.java @@ -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 lombok.Data; diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/ApprovalsDefinitionVo.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/ApprovalsDefinitionVo.java similarity index 97% rename from laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/ApprovalsDefinitionVo.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/ApprovalsDefinitionVo.java index 2caccb4d..6ff682fd 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/ApprovalsDefinitionVo.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/ApprovalsDefinitionVo.java @@ -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 lombok.Data; diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/DefinitionExternal.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/DefinitionExternal.java similarity index 98% rename from laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/DefinitionExternal.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/DefinitionExternal.java index 499c6e24..7acf7bb8 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/DefinitionExternal.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/DefinitionExternal.java @@ -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 lombok.Data; diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/DefinitionI18nResources.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/DefinitionI18nResources.java similarity index 96% rename from laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/DefinitionI18nResources.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/DefinitionI18nResources.java index 4e51a958..ccdd7ced 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/DefinitionI18nResources.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/DefinitionI18nResources.java @@ -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 io.swagger.annotations.ApiModelProperty; diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/DefinitionTexts.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/DefinitionTexts.java similarity index 89% rename from laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/DefinitionTexts.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/DefinitionTexts.java index 213393bb..5e199d55 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/DefinitionTexts.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/DefinitionTexts.java @@ -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 lombok.Data; diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/DefinitionViewers.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/DefinitionViewers.java similarity index 94% rename from laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/DefinitionViewers.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/DefinitionViewers.java index a8803199..231fc13f 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/vo/definition/DefinitionViewers.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/definition/DefinitionViewers.java @@ -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 lombok.Data; diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/vo/instance/ApprovalsInstanceVo.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/instance/ApprovalsInstanceVo.java similarity index 98% rename from laws-modules/src/main/java/com/jero/modules/feishu/vo/instance/ApprovalsInstanceVo.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/instance/ApprovalsInstanceVo.java index 8a5fa8d9..47b17089 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/vo/instance/ApprovalsInstanceVo.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/instance/ApprovalsInstanceVo.java @@ -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 lombok.Data; diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/vo/instance/InstanceForm.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/instance/InstanceForm.java similarity index 87% rename from laws-modules/src/main/java/com/jero/modules/feishu/vo/instance/InstanceForm.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/instance/InstanceForm.java index 14cf52bc..c12aa287 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/vo/instance/InstanceForm.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/instance/InstanceForm.java @@ -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 lombok.Data; diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/vo/instance/InstanceLink.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/instance/InstanceLink.java similarity index 91% rename from laws-modules/src/main/java/com/jero/modules/feishu/vo/instance/InstanceLink.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/instance/InstanceLink.java index 3ebbaa90..4b402962 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/vo/instance/InstanceLink.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/instance/InstanceLink.java @@ -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 lombok.Data; diff --git a/laws-modules/src/main/java/com/jero/modules/feishu/vo/instance/InstanceTask.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/instance/InstanceTask.java similarity index 98% rename from laws-modules/src/main/java/com/jero/modules/feishu/vo/instance/InstanceTask.java rename to laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/instance/InstanceTask.java index 571f0018..55d1133e 100644 --- a/laws-modules/src/main/java/com/jero/modules/feishu/vo/instance/InstanceTask.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/vo/instance/InstanceTask.java @@ -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 lombok.Data; -import java.util.List; - /** * 任务列表 */