diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml index d78c96140e..9b59becc84 100644 --- a/epmet-gateway/src/main/resources/bootstrap.yml +++ b/epmet-gateway/src/main/resources/bootstrap.yml @@ -445,6 +445,7 @@ epmet: - /data/stats/** - /epmet/ext/** - /epmetuser/customerstaff/customerlist + - /message/template/wxmpmsgpush swaggerUrls: diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpMsgSendRecordDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpMsgSendRecordDTO.java index 745708b221..ff1b7a4cf0 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpMsgSendRecordDTO.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpMsgSendRecordDTO.java @@ -97,6 +97,11 @@ public class WxmpMsgSendRecordDTO implements Serializable { */ private String reason; + /** + * 调用方 + */ + private String referer; + /** * 删除标识 */ diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java index c9f8b1e4a6..2e9e783587 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java @@ -59,4 +59,9 @@ public class WxSubscribeMessageFormDTO implements Serializable { */ private String gridId; + /** + * 调用方 + */ + private String referer; + } diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxmpMessagePushFormDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxmpMessagePushFormDTO.java new file mode 100644 index 0000000000..fbd2732581 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxmpMessagePushFormDTO.java @@ -0,0 +1,59 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + +/** + * @description: 微信订阅消息FormDTO + * @author: liushaowen + * @date: 2020/10/21 14:29 + */ +@Data +public class WxmpMessagePushFormDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + @NotBlank(message = "客户id不能为空") + private String customerId; + /** + * 客户端类型 居民端:resi 工作端:work + */ + @NotBlank(message = "客户端类型不能为空") + private String clientType; + + /** + * 接收者(用户)的 userId + */ + @NotBlank(message = "接收用户id不能为空") + private String userId; + + /** + * 行为类型(存title字段的中间值) 入组申请、党员认证等 + */ + @NotBlank(message = "行为类型不能为空") + private String behaviorType; + + /** + * 消息内容 + */ + @NotBlank(message = "消息内容不能为空") + private String messageContent; + + /** + * 网格id-居民端用 + */ + private String gridId; + + /** + * 调用方 + */ + @NotBlank(message = "调用方不能为空") + private String referer; + +} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageExtController.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageExtController.java new file mode 100644 index 0000000000..b6ffa1fc2f --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageExtController.java @@ -0,0 +1,33 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.form.WxmpMessagePushFormDTO; +import com.epmet.service.WxmpMessageExtService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @description: 外部调用微信订阅controller + * @author: liushaowen + * @date: 2020/11/2 14:51 + */ +@RestController +@RequestMapping("template") +public class WxmpMessageExtController { + @Autowired + private WxmpMessageExtService wxmpMessageExtService; + + @PostMapping("wxmpmsgpush") + public Result wxmpMsgPush(@RequestBody List dtos){ + for (WxmpMessagePushFormDTO dto : dtos) { + ValidatorUtils.validateEntity(dto); + } + return wxmpMessageExtService.pushWxmpMessage(dtos); + } +} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpMsgSendRecordEntity.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpMsgSendRecordEntity.java index cd303c4e6f..0e671bca3f 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpMsgSendRecordEntity.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpMsgSendRecordEntity.java @@ -98,4 +98,9 @@ public class WxmpMsgSendRecordEntity extends BaseEpmetEntity { */ private String reason; + /** + * 调用方 + */ + private String referer; + } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpMsgSendRecordExcel.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpMsgSendRecordExcel.java index d458acb436..5d642255e7 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpMsgSendRecordExcel.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpMsgSendRecordExcel.java @@ -70,6 +70,9 @@ public class WxmpMsgSendRecordExcel { @Excel(name = "发送失败的原因") private String reason; + @Excel(name = "调用者") + private String referer; + @Excel(name = "删除标识") private Integer delFlag; @@ -89,4 +92,4 @@ public class WxmpMsgSendRecordExcel { private Date updatedTime; -} \ No newline at end of file +} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpMessageExtService.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpMessageExtService.java new file mode 100644 index 0000000000..03320ded2e --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpMessageExtService.java @@ -0,0 +1,10 @@ +package com.epmet.service; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.WxmpMessagePushFormDTO; + +import java.util.List; + +public interface WxmpMessageExtService { + Result pushWxmpMessage(List dto); +} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageExtServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageExtServiceImpl.java new file mode 100644 index 0000000000..368235246a --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageExtServiceImpl.java @@ -0,0 +1,43 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.WxSubscribeMessageFormDTO; +import com.epmet.dto.form.WxmpMessagePushFormDTO; +import com.epmet.service.WxmpMessageExtService; +import com.epmet.service.WxmpMessageService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @description: + * @author: liushaowen + * @date: 2020/11/2 14:54 + */ +@Service +public class WxmpMessageExtServiceImpl implements WxmpMessageExtService { + @Autowired + private WxmpMessageService wxmpMessageService; + + @Override + public Result pushWxmpMessage(List dtos) { + List msgList = new ArrayList<>(); + for (WxmpMessagePushFormDTO dto : dtos) { + WxSubscribeMessageFormDTO wxSubscribeMessageFormDTO = new WxSubscribeMessageFormDTO(); + try{ + BeanUtils.copyProperties(dto,wxSubscribeMessageFormDTO); + wxSubscribeMessageFormDTO.setMessageTime(new Date()); + msgList.add(wxSubscribeMessageFormDTO); + }catch (Exception e){ + throw new RenException("转换bean失败"); + } + } + wxmpMessageService.sendWxSubscribeMessage(msgList); + return new Result(); + } +} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java index 7d9fa880db..f2478ce1f5 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java @@ -201,7 +201,7 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { if (StringUtils.isBlank(accessToken)) { throw new WxSubscribeException("accessToken获取失败"+accessTokenMap.get("errorMsg"), "", openId); } - + //发送消息 JSONObject jsonObject = new JSONObject(); JSONObject data = new JSONObject(); @@ -320,6 +320,7 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { wxmpMsgSendRecordEntity.setMessageContent(msg.getMessageContent()); wxmpMsgSendRecordEntity.setMessageTime(msg.getMessageTime()); wxmpMsgSendRecordEntity.setResult(status); + wxmpMsgSendRecordEntity.setReferer(StringUtils.isBlank(msg.getReferer())?"epmet":msg.getReferer()); return wxmpMsgSendRecordEntity; } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.12.3__wxmp_message_template.sql b/epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.12.3__wxmp_message_template.sql new file mode 100644 index 0000000000..3d6ead911b --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.12.3__wxmp_message_template.sql @@ -0,0 +1 @@ +ALTER TABLE wxmp_msg_send_record ADD REFERER VARCHAR(20) COMMENT '调用者';