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

Commit 530ca5c5 authored by jiangxiulong's avatar jiangxiulong

同步关注用户

parent 581d7320
...@@ -81,11 +81,12 @@ public class UserDataController { ...@@ -81,11 +81,12 @@ public class UserDataController {
@GetMapping("user") @GetMapping("user")
@ApiOperation("以openid同步单个关注服务号的用户") @ApiOperation("以openid同步单个关注服务号的用户")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "openId", value = "openId", required = true) @ApiImplicitParam(type = "query", dataType = "String", name = "openId", value = "openId", required = true),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "type", value = "type 1正在 2摩登", required = true)
}) })
public void getUser(@RequestParam() String openId) { public void getUser(@RequestParam() String openId, @RequestParam() Integer type) {
try { try {
userDataService.getUser(openId); userDataService.getUser(openId, type);
} catch (Exception e) { } catch (Exception e) {
log.error("getUser", e); log.error("getUser", e);
} }
......
...@@ -6,9 +6,10 @@ import com.liquidnet.commons.lang.util.IDGenerator; ...@@ -6,9 +6,10 @@ 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.config.WechatMpConfigure;
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;
import com.liquidnet.service.sweet.utils.WechatUsersRedisUtils;
import com.liquidnet.service.sweet.vo.SweetWechatUsersVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.WxMpService;
...@@ -27,7 +28,7 @@ public class UserDataServiceImpl { ...@@ -27,7 +28,7 @@ public class UserDataServiceImpl {
WechatMpConfigure wechatMpConfigure; WechatMpConfigure wechatMpConfigure;
@Autowired @Autowired
private RedisDataUtils redisDataUtils; private WechatUsersRedisUtils redisUtils;
@Autowired @Autowired
private QueueUtils queueUtils; private QueueUtils queueUtils;
...@@ -53,68 +54,36 @@ public class UserDataServiceImpl { ...@@ -53,68 +54,36 @@ public class UserDataServiceImpl {
log.info("getSubscribeFalse:openId:[{}]", openId); log.info("getSubscribeFalse:openId:[{}]", openId);
continue; continue;
} }
if (type == 1) { SweetWechatUsersVo sweetWechatUsers = redisUtils.getSweetWechatUsers(wxMpUser.getUnionId(), type);
SweetWechatUser userInfo = redisDataUtils.getSweetWechatUser(wxMpUser.getUnionId()); if (null == sweetWechatUsers) {
if (null == userInfo) { SweetWechatUsersVo sweetWechatUsersVo = SweetWechatUsersVo.getNew();
SweetWechatUser sweetWechatUser = SweetWechatUser.getNew(); sweetWechatUsersVo.setWechatId(IDGenerator.nextSnowId());
sweetWechatUser.setOpenId(wxMpUser.getOpenId()); sweetWechatUsersVo.setOpenId(wxMpUser.getOpenId());
sweetWechatUser.setUnionId(wxMpUser.getUnionId()); sweetWechatUsersVo.setUnionId(wxMpUser.getUnionId());
sweetWechatUser.setNickname(wxMpUser.getNickname()); sweetWechatUsersVo.setNickname(wxMpUser.getNickname());
sweetWechatUser.setSexDesc(wxMpUser.getSexDesc()); sweetWechatUsersVo.setSexDesc(wxMpUser.getSexDesc());
sweetWechatUser.setSex(wxMpUser.getSex()); sweetWechatUsersVo.setSex(wxMpUser.getSex());
sweetWechatUser.setHeadImgUrl(wxMpUser.getHeadImgUrl()); sweetWechatUsersVo.setHeadImgUrl(wxMpUser.getHeadImgUrl());
sweetWechatUser.setLanguage(wxMpUser.getLanguage()); sweetWechatUsersVo.setLanguage(wxMpUser.getLanguage());
sweetWechatUser.setCountry(wxMpUser.getCountry()); sweetWechatUsersVo.setCountry(wxMpUser.getCountry());
sweetWechatUser.setProvince(wxMpUser.getProvince()); sweetWechatUsersVo.setProvince(wxMpUser.getProvince());
sweetWechatUser.setCity(wxMpUser.getCity()); sweetWechatUsersVo.setCity(wxMpUser.getCity());
sweetWechatUser.setSubscribeTime(DateUtil.ofEpochMilli(wxMpUser.getSubscribeTime())); sweetWechatUsersVo.setSubscribeTime(DateUtil.ofEpochMilli(wxMpUser.getSubscribeTime()));
sweetWechatUser.setSubscribeScene(wxMpUser.getSubscribeScene()); sweetWechatUsersVo.setSubscribeScene(wxMpUser.getSubscribeScene());
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(), 1, 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_WECHAT_USER_INSERT.getKey(),
SqlMapping.gets(sqls, sqlsDataA));
// 入缓存
redisDataUtils.setSweetWechatUser(sweetWechatUser);
}
} else if (type == 2) {
SweetWechatUser userInfo = redisDataUtils.getSweetWechatUserModernsky(wxMpUser.getUnionId());
if (null == userInfo) {
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());
sweetWechatUser.setUserId(IDGenerator.nextSnowId());
LinkedList<String> sqls = CollectionUtil.linkedListString(); LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("sweet_user.insert")); sqls.add(SqlMapping.get("sweet_wechat_users_service.insert"));
sqlsDataA.add(new Object[]{ sqlsDataA.add(new Object[]{
sweetWechatUser.getUserId(), 2, sweetWechatUser.getOpenId(), sweetWechatUser.getUnionId(), sweetWechatUser.getNickname(), sweetWechatUsersVo.getWechatId(), type, sweetWechatUsersVo.getOpenId(), sweetWechatUsersVo.getUnionId(), sweetWechatUsersVo.getNickname(),
sweetWechatUser.getSexDesc(), sweetWechatUser.getSex(), sweetWechatUser.getHeadImgUrl(), sweetWechatUser.getLanguage(), sweetWechatUsersVo.getSexDesc(), sweetWechatUsersVo.getSex(), sweetWechatUsersVo.getHeadImgUrl(), sweetWechatUsersVo.getLanguage(),
sweetWechatUser.getCountry(), sweetWechatUser.getProvince(), sweetWechatUser.getCity(), sweetWechatUsersVo.getCountry(), sweetWechatUsersVo.getProvince(), sweetWechatUsersVo.getCity(),
sweetWechatUser.getSubscribeTime(), sweetWechatUser.getSubscribeScene() sweetWechatUsersVo.getSubscribeTime(), sweetWechatUsersVo.getSubscribeScene()
}); });
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT.getKey(), queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT.getKey(),
SqlMapping.gets(sqls, sqlsDataA)); SqlMapping.gets(sqls, sqlsDataA));
// 入缓存 // 入缓存
redisDataUtils.setSweetWechatUserModernsky(sweetWechatUser); redisUtils.setSweetWechatUsers(sweetWechatUsersVo);
}
} }
} catch (Exception e) { } catch (Exception e) {
...@@ -126,40 +95,41 @@ public class UserDataServiceImpl { ...@@ -126,40 +95,41 @@ public class UserDataServiceImpl {
log.info("同步微信用户完成"); log.info("同步微信用户完成");
} }
public void getUser(String openId) throws WxErrorException { public void getUser(String openId, Integer type) throws WxErrorException {
WxMpService wxMpService = wechatMpConfigure.getWxMpService(1); WxMpService wxMpService = wechatMpConfigure.getWxMpService(type);
WxMpUser wxMpUser = wxMpService.getUserService().userInfo(openId); WxMpUser wxMpUser = wxMpService.getUserService().userInfo(openId);
log.info("openId:[{}],wxMpUsers:[{}]", openId, wxMpUser); log.info("openId:[{}],wxMpUsers:[{}]", openId, wxMpUser);
SweetWechatUser userInfo = redisDataUtils.getSweetWechatUser(wxMpUser.getUnionId()); SweetWechatUsersVo sweetWechatUsers = redisUtils.getSweetWechatUsers(wxMpUser.getUnionId(), type);
if (null == userInfo) { if (null == sweetWechatUsers) {
SweetWechatUser sweetWechatUser = SweetWechatUser.getNew(); SweetWechatUsersVo sweetWechatUsersVo = SweetWechatUsersVo.getNew();
sweetWechatUser.setOpenId(wxMpUser.getOpenId()); sweetWechatUsersVo.setWechatId(IDGenerator.nextSnowId());
sweetWechatUser.setUnionId(wxMpUser.getUnionId()); sweetWechatUsersVo.setOpenId(wxMpUser.getOpenId());
sweetWechatUser.setNickname(wxMpUser.getNickname()); sweetWechatUsersVo.setUnionId(wxMpUser.getUnionId());
sweetWechatUser.setSexDesc(wxMpUser.getSexDesc()); sweetWechatUsersVo.setNickname(wxMpUser.getNickname());
sweetWechatUser.setSex(wxMpUser.getSex()); sweetWechatUsersVo.setSexDesc(wxMpUser.getSexDesc());
sweetWechatUser.setHeadImgUrl(wxMpUser.getHeadImgUrl()); sweetWechatUsersVo.setSex(wxMpUser.getSex());
sweetWechatUser.setLanguage(wxMpUser.getLanguage()); sweetWechatUsersVo.setHeadImgUrl(wxMpUser.getHeadImgUrl());
sweetWechatUser.setCountry(wxMpUser.getCountry()); sweetWechatUsersVo.setLanguage(wxMpUser.getLanguage());
sweetWechatUser.setProvince(wxMpUser.getProvince()); sweetWechatUsersVo.setCountry(wxMpUser.getCountry());
sweetWechatUser.setCity(wxMpUser.getCity()); sweetWechatUsersVo.setProvince(wxMpUser.getProvince());
sweetWechatUser.setSubscribeTime(DateUtil.ofEpochMilli(wxMpUser.getSubscribeTime())); sweetWechatUsersVo.setCity(wxMpUser.getCity());
sweetWechatUser.setSubscribeScene(wxMpUser.getSubscribeScene()); sweetWechatUsersVo.setSubscribeTime(DateUtil.ofEpochMilli(wxMpUser.getSubscribeTime()));
sweetWechatUser.setUserId(IDGenerator.nextSnowId()); sweetWechatUsersVo.setSubscribeScene(wxMpUser.getSubscribeScene());
LinkedList<String> sqls = CollectionUtil.linkedListString(); LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("sweet_user.insert")); sqls.add(SqlMapping.get("sweet_wechat_users_service.insert"));
sqlsDataA.add(new Object[]{ sqlsDataA.add(new Object[]{
sweetWechatUser.getUserId(), sweetWechatUser.getOpenId(), sweetWechatUser.getUnionId(), sweetWechatUser.getNickname(), sweetWechatUsersVo.getWechatId(), type, sweetWechatUsersVo.getOpenId(), sweetWechatUsersVo.getUnionId(), sweetWechatUsersVo.getNickname(),
sweetWechatUser.getSexDesc(), sweetWechatUser.getSex(), sweetWechatUser.getHeadImgUrl(), sweetWechatUser.getLanguage(), sweetWechatUsersVo.getSexDesc(), sweetWechatUsersVo.getSex(), sweetWechatUsersVo.getHeadImgUrl(), sweetWechatUsersVo.getLanguage(),
sweetWechatUser.getCountry(), sweetWechatUser.getProvince(), sweetWechatUser.getCity(), sweetWechatUsersVo.getCountry(), sweetWechatUsersVo.getProvince(), sweetWechatUsersVo.getCity(),
sweetWechatUser.getSubscribeTime(), sweetWechatUser.getSubscribeScene() sweetWechatUsersVo.getSubscribeTime(), sweetWechatUsersVo.getSubscribeScene()
}); });
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT.getKey(), queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT.getKey(),
SqlMapping.gets(sqls, sqlsDataA)); SqlMapping.gets(sqls, sqlsDataA));
// 入缓存 // 入缓存
redisDataUtils.setSweetWechatUser(sweetWechatUser); redisUtils.setSweetWechatUsers(sweetWechatUsersVo);
} }
} }
} }
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