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

Commit 801bed05 authored by jiangxiulong's avatar jiangxiulong

followStatus

parent 10b03c74
...@@ -29,6 +29,10 @@ public class SweetConstant { ...@@ -29,6 +29,10 @@ public class SweetConstant {
public final static String REDIS_KEY_SWEET_CITY_VOTE_USER="sweet:cityVote:user:"; public final static String REDIS_KEY_SWEET_CITY_VOTE_USER="sweet:cityVote:user:";
public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_UPDATE_TIME="sweet:cityVote:updateTime"; public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_UPDATE_TIME="sweet:cityVote:updateTime";
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO_MODERNSKY="sweet:wechatUser:modernsky:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO_STR_MODERNSKY="sweet:wechatUser:modernsky:unionIdStr:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_MODERNSKY="sweet:wechatUser:modernsky:openId:";
// public enum ManualPosition { // public enum ManualPosition {
// artist("艺人","artist"), // artist("艺人","artist"),
// signingTime("签售时间","signingTime"), // signingTime("签售时间","signingTime"),
......
...@@ -51,11 +51,13 @@ public class SweetWechatTemplateController { ...@@ -51,11 +51,13 @@ public class SweetWechatTemplateController {
@ApiOperation("获取关注状态") @ApiOperation("获取关注状态")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "unionId", value = "微信unionId", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "unionId", value = "微信unionId", required = true),
@ApiImplicitParam(type = "form", dataType = "Integer", name = "type", value = "type 1正在 2摩登", required = false),
}) })
public ResponseDto followStatus( public ResponseDto followStatus(
@RequestParam() String unionId @RequestParam() String unionId,
@RequestParam(defaultValue = "1") Integer type
) { ) {
boolean status = sweetTemplateService.followStatus(unionId); boolean status = sweetTemplateService.followStatus(unionId, type);
if (status) { if (status) {
return ResponseDto.success(1); return ResponseDto.success(1);
} else { } else {
......
...@@ -5,6 +5,7 @@ import com.liquidnet.commons.lang.util.DateUtil; ...@@ -5,6 +5,7 @@ import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.sweet.config.WechatMpConfigure;
import com.liquidnet.service.sweet.entity.SweetWechatUser; import com.liquidnet.service.sweet.entity.SweetWechatUser;
import com.liquidnet.service.sweet.service.impl.SweetWechatTemplateServiceImpl; import com.liquidnet.service.sweet.service.impl.SweetWechatTemplateServiceImpl;
import com.liquidnet.service.sweet.utils.QueueUtils; import com.liquidnet.service.sweet.utils.QueueUtils;
...@@ -38,6 +39,8 @@ public class SubscribeHandler implements WxMpMessageHandler { ...@@ -38,6 +39,8 @@ public class SubscribeHandler implements WxMpMessageHandler {
private RedisDataUtils redisDataUtils; private RedisDataUtils redisDataUtils;
@Autowired @Autowired
private QueueUtils queueUtils; private QueueUtils queueUtils;
@Autowired
WechatMpConfigure wechatMpConfigure;
@Autowired @Autowired
private SweetWechatTemplateServiceImpl sweetWechatTemplateService; private SweetWechatTemplateServiceImpl sweetWechatTemplateService;
...@@ -45,6 +48,9 @@ public class SubscribeHandler implements WxMpMessageHandler { ...@@ -45,6 +48,9 @@ public class SubscribeHandler implements WxMpMessageHandler {
@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 zhengzaiAppId = wechatMpConfigure.getWxMpService(1).getWxMpConfigStorage().getAppId();
String otherAppId = wxMpService.getWxMpConfigStorage().getAppId();
log.info("接收到一个订阅事件:[{}]", wxMessage.toString()); log.info("接收到一个订阅事件:[{}]", wxMessage.toString());
// 1、获取微信用户信息 // 1、获取微信用户信息
WxMpUser wxMpUser = wxMpService.getUserService().userInfo(wxMessage.getFromUser()); WxMpUser wxMpUser = wxMpService.getUserService().userInfo(wxMessage.getFromUser());
...@@ -53,38 +59,74 @@ public class SubscribeHandler implements WxMpMessageHandler { ...@@ -53,38 +59,74 @@ public class SubscribeHandler implements WxMpMessageHandler {
return null; return null;
} }
log.info("根据 openId:[{}]获取到的微信用户信息:[{}]", wxMessage.getFromUser(), wxMpUser.toString()); log.info("根据 openId:[{}]获取到的微信用户信息:[{}]", wxMessage.getFromUser(), wxMpUser.toString());
// 记录用户信息 if (zhengzaiAppId.equals(otherAppId)) {
SweetWechatUser userInfo = redisDataUtils.getSweetWechatUser(wxMpUser.getUnionId()); // 记录用户信息
SweetWechatUser sweetWechatUser = SweetWechatUser.getNew(); SweetWechatUser userInfo = redisDataUtils.getSweetWechatUser(wxMpUser.getUnionId());
sweetWechatUser.setOpenId(wxMpUser.getOpenId()); SweetWechatUser sweetWechatUser = SweetWechatUser.getNew();
sweetWechatUser.setUnionId(wxMpUser.getUnionId()); sweetWechatUser.setOpenId(wxMpUser.getOpenId());
sweetWechatUser.setNickname(wxMpUser.getNickname()); sweetWechatUser.setUnionId(wxMpUser.getUnionId());
sweetWechatUser.setSexDesc(wxMpUser.getSexDesc()); sweetWechatUser.setNickname(wxMpUser.getNickname());
sweetWechatUser.setSex(wxMpUser.getSex()); sweetWechatUser.setSexDesc(wxMpUser.getSexDesc());
sweetWechatUser.setHeadImgUrl(wxMpUser.getHeadImgUrl()); sweetWechatUser.setSex(wxMpUser.getSex());
sweetWechatUser.setLanguage(wxMpUser.getLanguage()); sweetWechatUser.setHeadImgUrl(wxMpUser.getHeadImgUrl());
sweetWechatUser.setCountry(wxMpUser.getCountry()); sweetWechatUser.setLanguage(wxMpUser.getLanguage());
sweetWechatUser.setProvince(wxMpUser.getProvince()); sweetWechatUser.setCountry(wxMpUser.getCountry());
sweetWechatUser.setCity(wxMpUser.getCity()); sweetWechatUser.setProvince(wxMpUser.getProvince());
sweetWechatUser.setSubscribeTime(DateUtil.ofEpochMilli(wxMpUser.getSubscribeTime())); sweetWechatUser.setCity(wxMpUser.getCity());
sweetWechatUser.setSubscribeScene(wxMpUser.getSubscribeScene()); sweetWechatUser.setSubscribeTime(DateUtil.ofEpochMilli(wxMpUser.getSubscribeTime()));
if (null == userInfo) { sweetWechatUser.setSubscribeScene(wxMpUser.getSubscribeScene());
sweetWechatUser.setUserId(IDGenerator.nextSnowId()); if (null == userInfo) {
LinkedList<String> sqls = CollectionUtil.linkedListString(); sweetWechatUser.setUserId(IDGenerator.nextSnowId());
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr(); LinkedList<String> sqls = CollectionUtil.linkedListString();
sqls.add(SqlMapping.get("sweet_user.insert")); LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqlsDataA.add(new Object[]{ sqls.add(SqlMapping.get("sweet_user.insert"));
sweetWechatUser.getUserId(), sweetWechatUser.getOpenId(), sweetWechatUser.getUnionId(), sweetWechatUser.getNickname(), sqlsDataA.add(new Object[]{
sweetWechatUser.getSexDesc(), sweetWechatUser.getSex(), sweetWechatUser.getHeadImgUrl(), sweetWechatUser.getLanguage(), sweetWechatUser.getUserId(), sweetWechatUser.getOpenId(), sweetWechatUser.getUnionId(), sweetWechatUser.getNickname(),
sweetWechatUser.getCountry(), sweetWechatUser.getProvince(), sweetWechatUser.getCity(), sweetWechatUser.getSexDesc(), sweetWechatUser.getSex(), sweetWechatUser.getHeadImgUrl(), sweetWechatUser.getLanguage(),
sweetWechatUser.getSubscribeTime(), sweetWechatUser.getSubscribeScene() sweetWechatUser.getCountry(), sweetWechatUser.getProvince(), sweetWechatUser.getCity(),
}); sweetWechatUser.getSubscribeTime(), sweetWechatUser.getSubscribeScene()
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_USER_INSERT_DRAW.getKey(), });
SqlMapping.gets(sqls, sqlsDataA)); queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_USER_INSERT_DRAW.getKey(),
// 入缓存 SqlMapping.gets(sqls, sqlsDataA));
redisDataUtils.setSweetWechatUser(sweetWechatUser); // 入缓存
//发送模版消息 redisDataUtils.setSweetWechatUser(sweetWechatUser);
sweetWechatTemplateService.subscribeSend(wxMpService, sweetWechatUser); //发送模版消息
sweetWechatTemplateService.subscribeSend(wxMpService, sweetWechatUser);
}
} else {
// 记录用户信息
SweetWechatUser userInfo = redisDataUtils.getSweetWechatUserModernsky(wxMpUser.getUnionId());
SweetWechatUser sweetWechatUser = SweetWechatUser.getNew();
sweetWechatUser.setOpenId(wxMpUser.getOpenId());
sweetWechatUser.setUnionId(wxMpUser.getUnionId());
sweetWechatUser.setNickname(wxMpUser.getNickname());
sweetWechatUser.setSexDesc(wxMpUser.getSexDesc());
sweetWechatUser.setSex(wxMpUser.getSex());
sweetWechatUser.setHeadImgUrl(wxMpUser.getHeadImgUrl());
sweetWechatUser.setLanguage(wxMpUser.getLanguage());
sweetWechatUser.setCountry(wxMpUser.getCountry());
sweetWechatUser.setProvince(wxMpUser.getProvince());
sweetWechatUser.setCity(wxMpUser.getCity());
sweetWechatUser.setSubscribeTime(DateUtil.ofEpochMilli(wxMpUser.getSubscribeTime()));
sweetWechatUser.setSubscribeScene(wxMpUser.getSubscribeScene());
if (null == userInfo) {
sweetWechatUser.setUserId(IDGenerator.nextSnowId());
LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("sweet_user.insert"));
sqlsDataA.add(new Object[]{
sweetWechatUser.getUserId(), sweetWechatUser.getOpenId(), sweetWechatUser.getUnionId(), sweetWechatUser.getNickname(),
sweetWechatUser.getSexDesc(), sweetWechatUser.getSex(), sweetWechatUser.getHeadImgUrl(), sweetWechatUser.getLanguage(),
sweetWechatUser.getCountry(), sweetWechatUser.getProvince(), sweetWechatUser.getCity(),
sweetWechatUser.getSubscribeTime(), sweetWechatUser.getSubscribeScene()
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_USER_INSERT_DRAW.getKey(),
SqlMapping.gets(sqls, sqlsDataA));
// 入缓存
redisDataUtils.setSweetWechatUserModernsky(sweetWechatUser);
//发送模版消息
sweetWechatTemplateService.subscribeSend(wxMpService, sweetWechatUser);
}
} }
return null; return null;
......
...@@ -3,6 +3,7 @@ package com.liquidnet.service.sweet.handler; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.sweet.handler;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.sweet.config.WechatMpConfigure;
import com.liquidnet.service.sweet.entity.SweetWechatUser; import com.liquidnet.service.sweet.entity.SweetWechatUser;
import com.liquidnet.service.sweet.utils.QueueUtils; import com.liquidnet.service.sweet.utils.QueueUtils;
import com.liquidnet.service.sweet.utils.RedisDataUtils; import com.liquidnet.service.sweet.utils.RedisDataUtils;
...@@ -37,12 +38,16 @@ public class UnsubscribeHandler implements WxMpMessageHandler { ...@@ -37,12 +38,16 @@ public class UnsubscribeHandler implements WxMpMessageHandler {
private RedisDataUtils redisDataUtils; private RedisDataUtils redisDataUtils;
@Autowired @Autowired
private QueueUtils queueUtils; private QueueUtils queueUtils;
@Autowired
WechatMpConfigure wechatMpConfigure;
@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 {
log.info("接收到一个取消订阅事件:[{}]", wxMessage.toString()); String zhengzaiAppId = wechatMpConfigure.getWxMpService(1).getWxMpConfigStorage().getAppId();
String otherAppId = wxMpService.getWxMpConfigStorage().getAppId();
log.info("接收到一个取消订阅事件:[{}]", wxMessage.toString());
// 1、获取微信用户信息 // 1、获取微信用户信息
WxMpUser wxMpUser = wxMpService.getUserService().userInfo(wxMessage.getFromUser()); WxMpUser wxMpUser = wxMpService.getUserService().userInfo(wxMessage.getFromUser());
if (null == wxMpUser) { if (null == wxMpUser) {
...@@ -50,23 +55,44 @@ public class UnsubscribeHandler implements WxMpMessageHandler { ...@@ -50,23 +55,44 @@ public class UnsubscribeHandler implements WxMpMessageHandler {
return null; return null;
} }
log.info("根据 openId:[{}]获取到的微信用户信息:[{}]", wxMessage.getFromUser(), wxMpUser.toString()); log.info("根据 openId:[{}]获取到的微信用户信息:[{}]", wxMessage.getFromUser(), wxMpUser.toString());
// 删除用户信息 if (zhengzaiAppId.equals(otherAppId)) {
String sweetWechatUserUnionid = redisDataUtils.getSweetWechatUserUnionid(wxMpUser.getOpenId()); // 删除用户信息
if (null != sweetWechatUserUnionid && !sweetWechatUserUnionid.isEmpty()) { String sweetWechatUserUnionid = redisDataUtils.getSweetWechatUserUnionid(wxMpUser.getOpenId());
SweetWechatUser userInfo = redisDataUtils.getSweetWechatUser(sweetWechatUserUnionid); if (null != sweetWechatUserUnionid && !sweetWechatUserUnionid.isEmpty()) {
if (null != userInfo) { SweetWechatUser userInfo = redisDataUtils.getSweetWechatUser(sweetWechatUserUnionid);
LinkedList<String> sqls = CollectionUtil.linkedListString(); if (null != userInfo) {
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr(); LinkedList<String> sqls = CollectionUtil.linkedListString();
LocalDateTime now = LocalDateTime.now(); LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("sweet_user.update")); LocalDateTime now = LocalDateTime.now();
sqlsDataA.add(new Object[]{ sqls.add(SqlMapping.get("sweet_user.update"));
2, now, sweetWechatUserUnionid sqlsDataA.add(new Object[]{
}); 2, now, sweetWechatUserUnionid
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_USER_INSERT_DRAW.getKey(), });
SqlMapping.gets(sqls, sqlsDataA)); queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_USER_INSERT_DRAW.getKey(),
redisDataUtils.delSweetWechatUser(sweetWechatUserUnionid, wxMpUser.getOpenId()); SqlMapping.gets(sqls, sqlsDataA));
redisDataUtils.delSweetWechatUser(sweetWechatUserUnionid, wxMpUser.getOpenId());
}
}
} else {
// 删除用户信息
String sweetWechatUserUnionid = redisDataUtils.getSweetWechatUserUnionidModernsky(wxMpUser.getOpenId());
if (null != sweetWechatUserUnionid && !sweetWechatUserUnionid.isEmpty()) {
SweetWechatUser userInfo = redisDataUtils.getSweetWechatUserModernsky(sweetWechatUserUnionid);
if (null != userInfo) {
LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
LocalDateTime now = LocalDateTime.now();
sqls.add(SqlMapping.get("sweet_user.update"));
sqlsDataA.add(new Object[]{
2, now, sweetWechatUserUnionid
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_USER_INSERT_DRAW.getKey(),
SqlMapping.gets(sqls, sqlsDataA));
redisDataUtils.delSweetWechatUserModernsky(sweetWechatUserUnionid, wxMpUser.getOpenId());
}
} }
} }
return null; return null;
} }
} }
...@@ -259,8 +259,13 @@ public class SweetWechatTemplateServiceImpl { ...@@ -259,8 +259,13 @@ public class SweetWechatTemplateServiceImpl {
} }
} }
public boolean followStatus(String unionId) { public boolean followStatus(String unionId, Integer type) {
SweetWechatUser sweetWechatUser = redisDataUtils.getSweetWechatUser(unionId); SweetWechatUser sweetWechatUser = null;
if (null == type || type <= 1) {
sweetWechatUser = redisDataUtils.getSweetWechatUser(unionId);
} else if (type == 2) {
sweetWechatUser = redisDataUtils.getSweetWechatUserModernsky(unionId);
}
if (null != sweetWechatUser && !sweetWechatUser.getUnionId().isEmpty()) { if (null != sweetWechatUser && !sweetWechatUser.getUnionId().isEmpty()) {
return true; return true;
......
...@@ -544,4 +544,51 @@ public class RedisDataUtils { ...@@ -544,4 +544,51 @@ public class RedisDataUtils {
return (String) obj; return (String) obj;
} }
} }
// wechat user 摩登
public void setSweetWechatUserModernsky(SweetWechatUser sweetWechatUser) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_WECHAT_USER_INFO_MODERNSKY.concat(sweetWechatUser.getUnionId());
String redisKeyUnid = SweetConstant.REDIS_KEY_SWEET_WECHAT_USER_UNIONID_MODERNSKY.concat(sweetWechatUser.getOpenId());
redisUtil.set(redisKey, sweetWechatUser);
redisUtil.set(redisKeyUnid, sweetWechatUser.getUnionId());
}
public String getSweetWechatUserUnionidModernsky(String openid) {
if (openid.isEmpty()) {
return null;
}
String redisKey = SweetConstant.REDIS_KEY_SWEET_WECHAT_USER_UNIONID_MODERNSKY.concat(openid);
return (String) redisUtil.get(redisKey);
}
public SweetWechatUser getSweetWechatUserModernsky(String unionid) {
if (unionid.isEmpty()) {
return null;
}
String redisKey = SweetConstant.REDIS_KEY_SWEET_WECHAT_USER_INFO_MODERNSKY.concat(unionid);
return (SweetWechatUser) redisUtil.get(redisKey);
}
public String getSweetWechatOpenIdModernsky(String unionid) {
if (unionid.isEmpty()) {
return "";
}
String redisKey = SweetConstant.REDIS_KEY_SWEET_WECHAT_USER_INFO_MODERNSKY.concat(unionid);
Object obj = redisUtil.get(redisKey);
if (null == obj) {
return "";
} else {
SweetWechatUser sweetWechatUser = (SweetWechatUser) redisUtil.get(redisKey);
return sweetWechatUser.getOpenId();
}
}
public void delSweetWechatUserModernsky(String unionid, String openid) {
if (!unionid.isEmpty()) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_WECHAT_USER_INFO_MODERNSKY.concat(unionid);
redisUtil.del(redisKey);
String redisKeyUnid = SweetConstant.REDIS_KEY_SWEET_WECHAT_USER_UNIONID_MODERNSKY.concat(openid);
redisUtil.del(redisKeyUnid);
}
}
// wechat user 摩登
} }
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