Browse Source

消息-推送微信消息

dev
liushaowen 5 years ago
parent
commit
748a5484de
  1. 1
      epmet-gateway/src/main/resources/bootstrap.yml
  2. 5
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpMsgSendRecordDTO.java
  3. 5
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java
  4. 59
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxmpMessagePushFormDTO.java
  5. 33
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageExtController.java
  6. 5
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpMsgSendRecordEntity.java
  7. 5
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpMsgSendRecordExcel.java
  8. 10
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpMessageExtService.java
  9. 43
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageExtServiceImpl.java
  10. 3
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java
  11. 1
      epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.12.3__wxmp_message_template.sql

1
epmet-gateway/src/main/resources/bootstrap.yml

@ -445,6 +445,7 @@ epmet:
- /data/stats/** - /data/stats/**
- /epmet/ext/** - /epmet/ext/**
- /epmetuser/customerstaff/customerlist - /epmetuser/customerstaff/customerlist
- /message/template/wxmpmsgpush
swaggerUrls: swaggerUrls:

5
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 reason;
/**
* 调用方
*/
private String referer;
/** /**
* 删除标识 * 删除标识
*/ */

5
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 gridId;
/**
* 调用方
*/
private String referer;
} }

59
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;
}

33
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<WxmpMessagePushFormDTO> dtos){
for (WxmpMessagePushFormDTO dto : dtos) {
ValidatorUtils.validateEntity(dto);
}
return wxmpMessageExtService.pushWxmpMessage(dtos);
}
}

5
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 reason;
/**
* 调用方
*/
private String referer;
} }

5
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpMsgSendRecordExcel.java

@ -70,6 +70,9 @@ public class WxmpMsgSendRecordExcel {
@Excel(name = "发送失败的原因") @Excel(name = "发送失败的原因")
private String reason; private String reason;
@Excel(name = "调用者")
private String referer;
@Excel(name = "删除标识") @Excel(name = "删除标识")
private Integer delFlag; private Integer delFlag;
@ -89,4 +92,4 @@ public class WxmpMsgSendRecordExcel {
private Date updatedTime; private Date updatedTime;
} }

10
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<WxmpMessagePushFormDTO> dto);
}

43
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<WxmpMessagePushFormDTO> dtos) {
List<WxSubscribeMessageFormDTO> 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();
}
}

3
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)) { if (StringUtils.isBlank(accessToken)) {
throw new WxSubscribeException("accessToken获取失败"+accessTokenMap.get("errorMsg"), "", openId); throw new WxSubscribeException("accessToken获取失败"+accessTokenMap.get("errorMsg"), "", openId);
} }
//发送消息 //发送消息
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
JSONObject data = new JSONObject(); JSONObject data = new JSONObject();
@ -320,6 +320,7 @@ public class WxmpMessageServiceImpl implements WxmpMessageService {
wxmpMsgSendRecordEntity.setMessageContent(msg.getMessageContent()); wxmpMsgSendRecordEntity.setMessageContent(msg.getMessageContent());
wxmpMsgSendRecordEntity.setMessageTime(msg.getMessageTime()); wxmpMsgSendRecordEntity.setMessageTime(msg.getMessageTime());
wxmpMsgSendRecordEntity.setResult(status); wxmpMsgSendRecordEntity.setResult(status);
wxmpMsgSendRecordEntity.setReferer(StringUtils.isBlank(msg.getReferer())?"epmet":msg.getReferer());
return wxmpMsgSendRecordEntity; return wxmpMsgSendRecordEntity;
} }

1
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 '调用者';
Loading…
Cancel
Save