记得上下班打卡 | git大法好,push需谨慎

Commit ad431924 authored by jiangxiulong's avatar jiangxiulong

TextMsgHandler merge

parent 323334a2
...@@ -2,13 +2,9 @@ package com.liquidnet.service.sweet.handler; ...@@ -2,13 +2,9 @@ package com.liquidnet.service.sweet.handler;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.third.shumei.util.ShumeiUtil; import com.liquidnet.common.third.shumei.util.ShumeiUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.StringUtil; import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.sweet.config.WechatMaConfigure; import com.liquidnet.service.sweet.config.WechatMaConfigure;
import com.liquidnet.service.sweet.utils.QueueUtils; import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.utils.WechatUsersRedisUtils; import com.liquidnet.service.sweet.utils.WechatUsersRedisUtils;
import com.liquidnet.service.sweet.vo.SweetMaoDengVo; import com.liquidnet.service.sweet.vo.SweetMaoDengVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -23,11 +19,8 @@ import me.chanjar.weixin.mp.bean.message.WxMpXmlOutTextMessage; ...@@ -23,11 +19,8 @@ import me.chanjar.weixin.mp.bean.message.WxMpXmlOutTextMessage;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Map; import java.util.Map;
import static com.liquidnet.service.sweet.constant.SweetConstant.REDIS_KEY_SWEET_WECHAT_MAODENG_OPEN_POSTER;
/** /**
* <p> * <p>
* 文本消息 * 文本消息
...@@ -42,55 +35,93 @@ public class TextMsgHandler implements WxMpMessageHandler { ...@@ -42,55 +35,93 @@ public class TextMsgHandler implements WxMpMessageHandler {
@Autowired @Autowired
private WechatUsersRedisUtils redisUtils; private WechatUsersRedisUtils redisUtils;
@Autowired @Autowired
WechatMaConfigure maConfigure; WechatMaConfigure maConfigure;
@Autowired @Autowired
private ShumeiUtil shumeiUtil; private ShumeiUtil shumeiUtil;
@Autowired
QueueUtils queueUtils;
@Autowired @Autowired
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Override @Override
public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService, public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService,
WxSessionManager sessionManager) throws WxErrorException { WxSessionManager sessionManager) throws WxErrorException {
String maoContent = wxMessage.getContent();//获取文字消息 String openId = wxMessage.getFromUser();
String fromUser = wxMessage.getFromUser();//用户id String content = wxMessage.getContent();
SweetMaoDengVo sweetMaoDengVo = SweetMaoDengVo.getNew();
sweetMaoDengVo.setUserId(fromUser); // 2021草莓音乐节海报活动
sweetMaoDengVo.setTextMsg(maoContent); if (StringUtil.trim(content).equals("白日梦")) {
String maoId = IDGenerator.nextSnowId(); redisUtils.setStrawberryPosterClick(wxMessage.getFromUser(), 10 * 60);
//敏感词判断
//此处判断不需要用户登录,所以使用时间代替 return WxMpXmlOutMessage.TEXT().content("你梦中的草莓音乐节会有怎样的阵容?\n" +
String currentUid = DateUtil.now().getTime() + ""; "不如做一次白日梦,挑选你心水的草莓阵容!\n" +
if (!shumeiUtil.checkText(currentUid, maoContent)) { "参与活动之前,请先告诉我你的昵称!(直接在对话框输入即可\uD83D\uDC47,9个字以内)")
//文字敏感 提示,发送文本消息
WxMpXmlOutTextMessage build = WxMpXmlOutMessage.TEXT().content("无法识别,TA是不是还有别的名字呢!(请勿使用表情等特殊字符)")
.fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser()) .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())
.build(); .build();
return build; } else if (redisUtils.getStrawberryPosterClick(openId)) {
// 验证
if (content.length() > 9) {
return WxMpXmlOutMessage.TEXT().content("昵称要9个字以内~")
.fromUser(wxMessage.getToUser()).toUser(openId)
.build();
}
if (!shumeiUtil.checkText(openId, content)) {
return WxMpXmlOutMessage.TEXT().content("无法识别,换个昵称吧!(请勿使用表情等特殊字符)")
.fromUser(wxMessage.getToUser()).toUser(openId)
.build();
}
// 发送文本消息
/*WxMpXmlOutTextMessage build = WxMpXmlOutMessage.TEXT().content("你好,".concat(content).concat("!点击下方小程序卡片开始搭建你梦想的草莓音乐节阵容!"))
.fromUser(wxMessage.getToUser()).toUser(openId)
.build();*/
WxMpKefuMessage message = WxMpKefuMessage.TEXT().content("你好,".concat(content).concat("!点击下方小程序卡片开始搭建你梦想的草莓音乐节阵容!"))
.toUser(openId).build();
wxMpService.getKefuService().sendKefuMessage(message);
// 发送活动小程序卡片
WxMpKefuMessage message1 = WxMpKefuMessage.MINIPROGRAMPAGE()
.appId(maConfigure.getWxMaAppid(4))
.pagePath("/pages/webview?query=strawberryMusic&voteWhere=2&nickname=".concat(content))
// .thumbMediaId("ov08q51In7bXX6tXv7Few8cBjTW0osSV_t9FCLg8Q1Q") // 正在
.thumbMediaId("OFjnPjluDGoHH1KOAdxQ_vfMiIKRu2Eo9QFhI5TOtHE") // 摩登
.title("做一场白日梦,挑选你心水的草莓阵容!")
.toUser(openId)
.build();
wxMpService.getKefuService().sendKefuMessage(message1);
} }
if (maoContent.equals("猫登天空")) {
redisUtils.setSweetMaoDengOpen(fromUser, 10 * 60);
if (content.equals("猫登天空")) {
redisUtils.setSweetMaoDengOpen(openId, 10 * 60);
WxMpXmlOutTextMessage build = WxMpXmlOutMessage.TEXT().content("没想到吧,你的喵星人主子在玩耍逗喵棒之外,也有一个隐秘的音乐人分身呢!\n" + WxMpXmlOutTextMessage build = WxMpXmlOutMessage.TEXT().content("没想到吧,你的喵星人主子在玩耍逗喵棒之外,也有一个隐秘的音乐人分身呢!\n" +
"看看TA到底是怎样一只音乐喵!\n" + "看看TA到底是怎样一只音乐喵!\n" +
"参与活动之前,请先告诉我们猫咪的名字!(直接在对话框输入即可👇,9个汉字或18个英文字符以内)\n") "参与活动之前,请先告诉我们猫咪的名字!(直接在对话框输入即可👇,9个汉字或18个英文字符以内)\n")
.fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser()) .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())
.build(); .build();
return build; return build;
} } else if (StringUtil.isNotEmpty(redisUtils.getSweetMaoDengOpen(openId))) { //是否参加了活动
String i = redisUtils.getSweetMaoDengOpen(fromUser); //敏感词判断
//是否参加了活动 //此处判断不需要用户登录,所以使用时间代替
if (StringUtil.isNotEmpty(i)) { if (!shumeiUtil.checkText(openId, content)) {
//文字敏感 提示,发送文本消息
SweetMaoDengVo sweetMaoDeng = redisUtils.getSweetMaoDengTransfer(fromUser); WxMpXmlOutTextMessage build = WxMpXmlOutMessage.TEXT().content("无法识别,TA是不是还有别的名字呢!(请勿使用表情等特殊字符)")
.fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())
.build();
return build;
}
SweetMaoDengVo sweetMaoDengVo = SweetMaoDengVo.getNew();
sweetMaoDengVo.setUserId(openId);
sweetMaoDengVo.setTextMsg(content);
SweetMaoDengVo sweetMaoDeng = redisUtils.getSweetMaoDengTransfer(openId);
if (sweetMaoDeng != null) { if (sweetMaoDeng != null) {
String picUrl = sweetMaoDeng.getPicUrl(); String picUrl = sweetMaoDeng.getPicUrl();
sweetMaoDengVo.setPicUrl(picUrl); sweetMaoDengVo.setPicUrl(picUrl);
} }
//获取过期时间 //获取过期时间
long expire = redisUtil.getExpire(REDIS_KEY_SWEET_WECHAT_MAODENG_OPEN_POSTER + fromUser); long expire = redisUtil.getExpire(SweetConstant.REDIS_KEY_SWEET_WECHAT_MAODENG_OPEN_POSTER + openId);
redisUtils.setSweetMaoDengTransfer(sweetMaoDengVo,expire); redisUtils.setSweetMaoDengTransfer(sweetMaoDengVo, expire);
WxMpXmlOutTextMessage build = WxMpXmlOutMessage.TEXT().content("请发我猫咪的图片") WxMpXmlOutTextMessage build = WxMpXmlOutMessage.TEXT().content("请发我猫咪的图片")
.fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser()) .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())
...@@ -100,30 +131,6 @@ public class TextMsgHandler implements WxMpMessageHandler { ...@@ -100,30 +131,6 @@ public class TextMsgHandler implements WxMpMessageHandler {
} }
return null;
//--------------------------------------------------------------------------------------------------------------------------
boolean IsPosterClick = redisUtils.getStrawberryPosterClick(wxMessage.getFromUser());
if (IsPosterClick) {
String content = wxMessage.getContent();
// 发送文本消息
WxMpXmlOutTextMessage build = WxMpXmlOutMessage.TEXT().content("您已参与活动,输入的姓名为:".concat(content).concat(" 请点击下方小程序参加活动"))
.fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())
.build();
// 发送活动小程序卡片
WxMpKefuMessage message = WxMpKefuMessage.MINIPROGRAMPAGE()
.appId(maConfigure.getWxMaAppid(4))
.pagePath("/pages/index?nickname=".concat(content))
.thumbMediaId("ov08q51In7bXX6tXv7FewxFNN0G78n-pPRsbi3LZbPE")
.title("正在摩登")
.toUser(wxMessage.getFromUser())
.build();
wxMpService.getKefuService().sendKefuMessage(message);
return build;
} else {
// 正常消息不处理
return null;
}
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment