From f789730bd59ed110740bb81cad7e5583179dc5d8 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Fri, 16 Jun 2023 13:59:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B6=88=E6=81=AF=E5=8F=91?= =?UTF-8?q?=E9=80=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/MessageTypeEnum.java | 49 +++++++++++++++++++ .../store/dto/message/SendCardMessageDTO.java | 33 +++++++++++++ .../com/cool/store/http/ISVHttpRequest.java | 21 ++++++++ .../cool/store/controller/TestController.java | 13 ++++- .../cool/store/config/SignValidateFilter.java | 2 +- 5 files changed, 116 insertions(+), 2 deletions(-) create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/MessageTypeEnum.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/message/SendCardMessageDTO.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/MessageTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/MessageTypeEnum.java new file mode 100644 index 000000000..952ec104a --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/MessageTypeEnum.java @@ -0,0 +1,49 @@ +package com.cool.store.enums; + +/** + * @author zhangchenbiao + * @FileName: MessageTypeEnum + * @Description: + * @date 2023-06-15 10:14 + */ +public enum MessageTypeEnum { + + SCHEDULE_REMINDER("schedule_reminder", "日历提醒事件", "img_v2_0709ece3-77a8-49a4-820f-f245b2a4fdag") + + + + ; + + private String code; + + private String name; + + private String imageMediaId; + + MessageTypeEnum(String code, String name, String imageMediaId) { + this.code = code; + this.name = name; + this.imageMediaId = imageMediaId; + } + + public String getCode() { + return code; + } + + public String getName() { + return name; + } + + public String getImageMediaId() { + return imageMediaId; + } + + public static String getImageMediaId(String code){ + for (MessageTypeEnum value : MessageTypeEnum.values()) { + if(value.code.equals(code)){ + return value.imageMediaId; + } + } + return null; + } +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/message/SendCardMessageDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/message/SendCardMessageDTO.java new file mode 100644 index 000000000..e2e22440b --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/message/SendCardMessageDTO.java @@ -0,0 +1,33 @@ +package com.cool.store.dto.message; + +import com.cool.store.enums.MessageTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author zhangchenbiao + * @FileName: SendCardMessageDTO + * @Description:发送卡片消息 + * @date 2023-06-15 11:05 + */ +@Data +public class SendCardMessageDTO { + + @ApiModelProperty("消息接收人") + private List userIds; + + @ApiModelProperty("消息链接") + private String messageUrl; + + @ApiModelProperty("消息标题") + private String title; + + @ApiModelProperty("消息内容") + private String content; + + @ApiModelProperty("消息类型, MessageTypeEnum") + private MessageTypeEnum messageType; + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java index 83abd4c11..0d0cdb989 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java @@ -7,6 +7,7 @@ import com.cool.store.dto.enterprise.AuthScopeDTO; import com.cool.store.dto.enterprise.EnterpriseUserDTO; import com.cool.store.dto.enterprise.SysDepartmentDTO; import com.cool.store.dto.login.UserIdInfoDTO; +import com.cool.store.dto.message.SendCardMessageDTO; import com.cool.store.dto.response.ResultDTO; import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.enums.ErrorCodeEnum; @@ -17,6 +18,7 @@ import com.cool.store.utils.RestTemplateUtil; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @@ -311,4 +313,23 @@ public class ISVHttpRequest { } return null; } + + /** + * 发送飞书卡片消息 + * @param param + */ + public void sendFeiShuCardMessage(SendCardMessageDTO param) throws ApiException{ + if(CollectionUtils.isEmpty(param.getUserIds()) || StringUtils.isAnyBlank(param.getTitle(), param.getContent(), param.getMessageUrl()) || Objects.isNull(param.getMessageType())){ + return; + } + String url = isvDomain + "/sendFeiShuCardMessage"; + ResultDTO responseEntity = null; + try { + responseEntity = httpRestTemplateService.postForObject(url, param, ResultDTO.class); + log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); + } catch (Exception e) { + log.info("调用isv出错{}", e); + throw new ApiException(e.getMessage()); + } + } } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java index 6a4493a0e..e0c16c7f4 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java @@ -6,6 +6,7 @@ import com.cool.store.dto.calendar.CreateCalendarEventDTO; import com.cool.store.dto.calendar.DeleteCalendarEventDTO; import com.cool.store.dto.calendar.UpdateCalendarEventDTO; import com.cool.store.dto.calendar.UserCalendarsEventDTO; +import com.cool.store.dto.message.SendCardMessageDTO; import com.cool.store.dto.partner.DescribePhoneNumberDTO; import com.cool.store.dto.response.ResultDTO; import com.cool.store.entity.HyOpenAreaInfoDO; @@ -200,7 +201,7 @@ public class TestController { return ResultDTO.successResult(isvHttpRequest.getUserCalendarsEvents(userId, startTime, endTime)); } - @GetMapping(path = "/getIdentityCardInfo") + @GetMapping("/getIdentityCardInfo") @ApiOperation("根据身份证正面解析获取数据") public ResponseResult getIdentityCardInfo(@RequestParam(value = "faceImageUrl")String faceImageUrl){ try { @@ -211,4 +212,14 @@ public class TestController { } } + @PostMapping("/sendFeiShuCardMessage") + public ResponseResult sendFeiShuCardMessage(@RequestBody SendCardMessageDTO param){ + try { + isvHttpRequest.sendFeiShuCardMessage(param); + return ResponseResult.success(); + } catch (Exception e) { + throw new ServiceException(ErrorCodeEnum.IDENTITY_CARD_PARSE_FAIL); + } + } + } diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java index 46b913743..7f10207cc 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java @@ -46,7 +46,7 @@ public class SignValidateFilter implements Filter { private static List patternList = Lists.newArrayList("/web/check/ok","/check/ok", - "/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**","/partner/pc/feiShuLogin","/partner/pc/oss/getUploadFileConfig", + "/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**","/partner/mini/program/oss/getUploadFileConfig", "/**/swagger*/**", "/**/webjars/**");