Browse Source

企业微信小程序消息卡片

zyh
小久哥 3 years ago
parent
commit
1a88fca5b6
  1. 49
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/annotation/FarmMsgAspect.java

49
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/annotation/FarmMsgAspect.java

@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.farm.annotation;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.farm.dal.dataobject.discuss.DiscussDO;
@ -19,20 +20,25 @@ import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.dal.mysql.CpUser.CpUserMapper;
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.cp.api.WxCpMessageService;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.bean.message.WxCpAppChatMessage;
import me.chanjar.weixin.cp.bean.message.WxCpMessage;
import me.chanjar.weixin.cp.bean.message.WxCpMessageSendResult;
import me.chanjar.weixin.cp.bean.messagebuilder.MiniProgramNoticeMsgBuilder;
import me.chanjar.weixin.cp.tp.message.WxCpTpMessageHandler;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.time.LocalDateTime;
import java.util.*;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@ -61,6 +67,9 @@ public class FarmMsgAspect {
@Resource
private WxCpService wxCpService;
@Value("${wxma.app_id}")
private String appid;
/**
* 定义切入点 @PointCut
* 使用了@FarmMsg注解的地方切入
@ -111,8 +120,10 @@ public class FarmMsgAspect {
return object;
}
if (!farmMsgDTO.getNoSendMsg()){
//发送信息
this.sendCpMsg(description.toString(), toUserStr);
//企业微信内部发送信息
//this.sendCpMsg(description.toString(), toUserStr);
//企业微信小程序通知消息
this.sendMiniMsg(user, farmMsgDTO, toUserStr);
}
}
@ -155,6 +166,34 @@ public class FarmMsgAspect {
log.info("企业微信消息发送结果:{}",result);
}
//发送小程序通知消息
public void sendMiniMsg(CpUserDO createUser, FarmMsgDTO farmMsgDTO, String toUserStr) throws WxErrorException {
// 发小程序
WxCpMessageService wxCpMessageService = wxCpService.getMessageService();
// 构造一个企业推送消息
WxCpMessage message = new WxCpMessage();
//接受者
message.setToUser(toUserStr);
//消息类型
message.setMsgType("miniprogram_notice");
message.setAppId(appid);
message.setTitle(farmMsgDTO.getType().getDesc() + farmMsgDTO.getOperation().getDesc() + "通知");
message.setDescription(LocalDateTimeUtil.formatNormal(LocalDateTime.now()));
Map<String, String> map2 = new HashMap<>();
map2.put("发起人", createUser.getName());
map2.put("内容", ObjectUtil.isEmpty(farmMsgDTO.getMsg()) ? farmMsgDTO.getTitle() : farmMsgDTO.getMsg());
message.setContentItems(map2);
log.info("企业微信小程序通知消息发送内容:{}", message);
WxCpMessageSendResult result = wxCpMessageService.send(message);
log.info("企业微信小程序通知消息发送结果:{}",result);
}
/**
* @Description 获取需要接受信息的成员
* @param id 可能是 projectId taskId discussId

Loading…
Cancel
Save