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

Commit b3744356 authored by jiangxiulong's avatar jiangxiulong

微信回调关注、取消关注;小程序登陆;的微信用户统一整理

parent 997b6382
package com.liquidnet.service.sweet.constant;
/**
*
*/
import com.google.common.collect.FluentIterable;
public class SweetConstant {
public final static String REDIS_KEY_SWEET_MANUAL_PUSH_LIST = "sweet:manual:pushList";
......@@ -20,7 +19,6 @@ public class SweetConstant {
public final static String REDIS_KEY_SWEET_LUCK_DRAW_ALL = "sweet:luckDraw:num:";//中奖总量
public final static String REDIS_KEY_SWEET_LUCK_DRAW_PRESENT_MOBILE = "sweet:luckDraw:present:mobile:";//中奖库存
public final static String REDIS_KEY_SWEET_MDSK_MANUAL_PUSH_LIST = "sweet:mdsk:manual:pushList";
public final static String REDIS_KEY_SWEET_MDSK_MANUAL_TIME_LIST = "sweet:mdsk:manual:timeList:manual:";
public final static String REDIS_KEY_SWEET_MDSK_MANUAL_NOTIFY_LIST = "sweet:mdsk:manual:notify:manual:";
......@@ -29,15 +27,25 @@ public class SweetConstant {
public final static String REDIS_KEY_SWEET_MDSK_ARTISTS_RELATION = "sweet:mdsk:artists:relation:uid:";
public final static String REDIS_KEY_SWEET_MDSK_ARTISTS_DETAILS = "sweet:mdsk:artists:details:";
public final static String REDIS_KEY_SWEET_MDSK_SHOP = "sweet:mdsk:artists:shop:manual:";
// 积分活动
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_LIST = "sweet:integralActivity:list";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_INFO = "sweet:integralActivity:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM = "sweet:integralActivity:prizeNum:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_WINNERS_NUM = "sweet:integralActivity:prizeWinnersNum:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_ALL_LIST = "sweet:integralActivity:Draw:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_USER = "sweet:integralActivity:Draw:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_IN_USER = "sweet:integralActivity:DrawIn:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_INFO = "sweet:integralActivity:DrawInfo:drawId:";
// 答题活动
public final static String REDIS_KEY_SWEET_ANSWER_PHONE="sweet:answer:phone:";
// 城市投票活动
public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_LIST=":StatList";
public final static String REDIS_KEY_SWEET_CITY_VOTE_CITY_CODE=":cityCode:";
public final static String REDIS_KEY_SWEET_CITY_VOTE="sweet:cityVote";
public final static String REDIS_KEY_SWEET_CITY_VOTE_USER=":user:";
public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_UPDATE_TIME=":updateTime";
// 微信用户相关
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO="sweet:wechatUser:zhengzai:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO_MODERNSKY="sweet:wechatUser:modernsky:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID="sweet:wechatUser:zhengzai:openId:";
......@@ -47,17 +55,8 @@ public class SweetConstant {
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_UID="sweet:wechatUser:zhengzai:uid:";
public final static String REDIS_KEY_SWEET_WECHAT_USER_UNIONID_UID_MODERNSKY="sweet:wechatUser:modernsky:uid:";
public final static String REDIS_KEY_SWEET_ANSWER_PHONE="sweet:answer:phone:";
public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_LIST=":StatList";
public final static String REDIS_KEY_SWEET_CITY_VOTE_CITY_CODE=":cityCode:";
public final static String REDIS_KEY_SWEET_CITY_VOTE="sweet:cityVote";
public final static String REDIS_KEY_SWEET_CITY_VOTE_USER=":user:";
public final static String REDIS_KEY_SWEET_CITY_VOTE_STAT_UPDATE_TIME=":updateTime";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_ALL_LIST = "sweet:integralActivity:Draw:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_USER = "sweet:integralActivity:Draw:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_IN_USER = "sweet:integralActivity:DrawIn:activityId:";
public final static String REDIS_KEY_SWEET_WECHAT_USERS="sweet:wechatUsers:unionId:";
public final static String REDIS_KEY_SWEET_WECHAT_USERS_TYPE="type:";
public final static String REDIS_KEY_SWEET_WECHAT_USERS_RELATION="sweet:wechatUsersRelation:mobile:";
}
......@@ -4,6 +4,7 @@ import com.liquidnet.service.adam.dto.rsc.AdamChimeUinfoReq;
import com.liquidnet.service.adam.dto.rsc.AdamChimeUinfoDto;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.base.ResponseDto;
import feign.hystrix.FallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
......@@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.Pattern;
import java.util.List;
@Component
......@@ -32,4 +34,8 @@ public interface FeignAdamBaseClient {
@PostMapping("rsc/inquire/cuinfo")
ResponseDto<List<AdamChimeUinfoDto>> queryForChimeUserInfo(@RequestBody AdamChimeUinfoReq req);
@PostMapping(value = {"rsc/reg/mobile"})
ResponseDto<AdamUserInfoVo> registerByMobile(@Pattern(regexp = "\\d{11}", message = "手机号格式有误")
@RequestParam String mobile);
}
......@@ -42,7 +42,7 @@ public class SweetWechatActionCallbackController {
log.info("验签未通过");
}
} catch (Exception e) {
log.info(e.getMessage());
log.info("验签未通过 [e=[{}]]", e.getMessage());
}
}
......
......@@ -6,10 +6,10 @@ import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.SqlMapping;
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.service.impl.SweetWechatTemplateServiceImpl;
import com.liquidnet.service.sweet.utils.QueueUtils;
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 me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.session.WxSessionManager;
......@@ -36,7 +36,7 @@ import java.util.Map;
@Slf4j
public class SubscribeHandler implements WxMpMessageHandler {
@Autowired
private RedisDataUtils redisDataUtils;
private WechatUsersRedisUtils redisUtils;
@Autowired
private QueueUtils queueUtils;
@Autowired
......@@ -55,78 +55,49 @@ public class SubscribeHandler implements WxMpMessageHandler {
// 1、获取微信用户信息
WxMpUser wxMpUser = wxMpService.getUserService().userInfo(wxMessage.getFromUser());
if (null == wxMpUser) {
log.warn("从微信公众号获取用户(FromUser)信息:[{}]失败.", wxMessage.getFromUser());
log.error("从微信公众号获取用户(FromUser)信息:[{}]失败.", wxMessage.getFromUser());
return null;
}
log.info("根据 openId:[{}]获取到的微信用户信息:[{}]", wxMessage.getFromUser(), wxMpUser.toString());
if (zhengzaiAppId.equals(otherAppId)) {
// 记录用户信息
SweetWechatUser userInfo = redisDataUtils.getSweetWechatUser(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(), 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);
//发送模版消息
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(), 2, 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.setSweetWechatUserModernsky(sweetWechatUser);
//发送模版消息
sweetWechatTemplateService.subscribeSend(wxMpService, sweetWechatUser);
}
// 记录用户信息
Integer type = 0;
if (zhengzaiAppId.equals(otherAppId)) {// 正在服务号
type = 1;
} else {// 摩登服务号
type = 2;
}
SweetWechatUsersVo sweetWechatUsers = redisUtils.getSweetWechatUsers(wxMpUser.getUnionId(), type);
if (null == sweetWechatUsers && type > 0) {
SweetWechatUsersVo sweetWechatUsersVo = SweetWechatUsersVo.getNew();
sweetWechatUsersVo.setWechatId(IDGenerator.nextSnowId());
sweetWechatUsersVo.setOpenId(wxMpUser.getOpenId());
sweetWechatUsersVo.setUnionId(wxMpUser.getUnionId());
sweetWechatUsersVo.setNickname(wxMpUser.getNickname());
sweetWechatUsersVo.setSexDesc(wxMpUser.getSexDesc());
sweetWechatUsersVo.setSex(wxMpUser.getSex());
sweetWechatUsersVo.setHeadImgUrl(wxMpUser.getHeadImgUrl());
sweetWechatUsersVo.setLanguage(wxMpUser.getLanguage());
sweetWechatUsersVo.setCountry(wxMpUser.getCountry());
sweetWechatUsersVo.setProvince(wxMpUser.getProvince());
sweetWechatUsersVo.setCity(wxMpUser.getCity());
sweetWechatUsersVo.setSubscribeTime(DateUtil.ofEpochMilli(wxMpUser.getSubscribeTime()));
sweetWechatUsersVo.setSubscribeScene(wxMpUser.getSubscribeScene());
LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("sweet_wechat_users_service.insert"));
sqlsDataA.add(new Object[]{
sweetWechatUsersVo.getWechatId(), type, sweetWechatUsersVo.getOpenId(), sweetWechatUsersVo.getUnionId(), sweetWechatUsersVo.getNickname(),
sweetWechatUsersVo.getSexDesc(), sweetWechatUsersVo.getSex(), sweetWechatUsersVo.getHeadImgUrl(), sweetWechatUsersVo.getLanguage(),
sweetWechatUsersVo.getCountry(), sweetWechatUsersVo.getProvince(), sweetWechatUsersVo.getCity(),
sweetWechatUsersVo.getSubscribeTime(), sweetWechatUsersVo.getSubscribeScene()
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT.getKey(),
SqlMapping.gets(sqls, sqlsDataA));
// 入缓存
redisUtils.setSweetWechatUsers(sweetWechatUsersVo);
//发送模版消息
sweetWechatTemplateService.subscribeSend(wxMpService, sweetWechatUsersVo);
}
return null;
......
......@@ -4,9 +4,8 @@ import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.base.SqlMapping;
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.utils.QueueUtils;
import com.liquidnet.service.sweet.utils.RedisDataUtils;
import com.liquidnet.service.sweet.utils.WechatUsersRedisUtils;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.session.WxSessionManager;
......@@ -18,7 +17,6 @@ import me.chanjar.weixin.mp.bean.result.WxMpUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.Map;
......@@ -35,7 +33,7 @@ import java.util.Map;
public class UnsubscribeHandler implements WxMpMessageHandler {
@Autowired
private RedisDataUtils redisDataUtils;
private WechatUsersRedisUtils redisUtils;
@Autowired
private QueueUtils queueUtils;
@Autowired
......@@ -55,44 +53,24 @@ public class UnsubscribeHandler implements WxMpMessageHandler {
return null;
}
log.info("根据 openId:[{}]获取到的微信用户信息:[{}]", wxMessage.getFromUser(), wxMpUser.toString());
if (zhengzaiAppId.equals(otherAppId)) {
// 删除用户信息
String sweetWechatUserUnionid = redisDataUtils.getSweetWechatUserUnionid(wxMpUser.getOpenId());
if (null != sweetWechatUserUnionid && !sweetWechatUserUnionid.isEmpty()) {
SweetWechatUser userInfo = redisDataUtils.getSweetWechatUser(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, 1
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT.getKey(),
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, 2
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT.getKey(),
SqlMapping.gets(sqls, sqlsDataA));
redisDataUtils.delSweetWechatUserModernsky(sweetWechatUserUnionid, wxMpUser.getOpenId());
}
}
Integer type = 0;
if (zhengzaiAppId.equals(otherAppId)) {// 正在服务号
type = 1;
} else {// 摩登服务号
type = 2;
}
// 删除用户信息
if (!wxMpUser.getUnionId().isEmpty()) {
redisUtils.delSweetWechatUsers(wxMpUser.getUnionId(), type);
LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("sweet_wechat_users.delete"));
sqlsDataA.add(new Object[]{
wxMpUser.getUnionId(), type
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT.getKey(),
SqlMapping.gets(sqls, sqlsDataA));
}
return null;
}
}
......@@ -3,25 +3,24 @@ package com.liquidnet.service.sweet.service.impl;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient;
import com.liquidnet.service.sweet.dto.vo.WechatTokenInfoVo;
import com.liquidnet.service.sweet.dto.vo.WechatUserInfoVo;
import com.liquidnet.service.sweet.utils.QueueUtils;
import com.liquidnet.service.sweet.utils.WechatUsersRedisUtils;
import com.liquidnet.service.sweet.vo.SweetWechatUsersRelationVo;
import com.liquidnet.service.sweet.vo.SweetWechatUsersVo;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.bean.WxOAuth2UserInfo;
import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import java.util.HashMap;
import java.util.LinkedList;
......@@ -45,50 +44,81 @@ public class SweetWechatLoginServiceImpl {
@Autowired
QueueUtils queueUtils;
@Value("${liquidnet.service.adam.url}")
private String adamUrl;
@Autowired
private WechatUsersRedisUtils redisUtils;
@Autowired
private FeignAdamBaseClient feignAdamBaseClient;
public ResponseDto userInfo(String code, String encryptedData, String iv, Integer type) {
log.info("\n参数code:[{}] ", code);
log.info("\n参数encryptedData:[{}] ", encryptedData);
log.info("\n参数iv:[{}] ", iv);
log.info("\n参数type:[{}] ", type);
log.info("小程序解密用户信息参数:[code=[{}], encryptedData=[{}], [iv=[{}], type=[{}]", code, encryptedData, iv, type);
try {
// 获取unid openid
WxMaJscode2SessionResult sessionInfo = sweetWechatService.sessionInfo(code, type);
log.info("\nWxMaJscode2SessionResult:[{}] ", JsonUtils.toJson(sessionInfo));
if (null == sessionInfo) {
return ResponseDto.failure("login handler error");
}
String unionId = sessionInfo.getUnionid();
String openId = sessionInfo.getOpenid();
// 解密手机号码信息
WxMaPhoneNumberInfo wxMaPhoneNumberInfo = sweetWechatService.phoneNumberInfo(sessionInfo.getSessionKey(), encryptedData, iv, type);
log.info("\nWxMaPhoneNumberInfo:[{}] ", wxMaPhoneNumberInfo.toString());
if (Objects.isNull(wxMaPhoneNumberInfo) || StringUtils.isBlank(wxMaPhoneNumberInfo.getPhoneNumber())) {
return ResponseDto.failure("解密手机号码信息错误");
return ResponseDto.failure("解密手机信息失败");
}
String unionId = sessionInfo.getUnionid();
String openId = sessionInfo.getOpenid();
String wechatId = IDGenerator.nextSnowId();
String phoneNumber = wxMaPhoneNumberInfo.getPhoneNumber();
String purePhoneNumber = wxMaPhoneNumberInfo.getPurePhoneNumber();
String countryCode = wxMaPhoneNumberInfo.getCountryCode();
Integer userType = type + 20;
// 获取adam用户信息 自动注册
ResponseDto<AdamUserInfoVo> userInfoVo = feignAdamBaseClient.registerByMobile(wxMaPhoneNumberInfo.getPurePhoneNumber());
AdamUserInfoVo userInfoVoData = userInfoVo.getData();
String mobile = userInfoVoData.getMobile();
String userId = userInfoVoData.getUid();
// mysql redis
SweetWechatUsersVo sweetWechatUsers = redisUtils.getSweetWechatUsers(unionId, userType);
if (null == sweetWechatUsers) {
LinkedList<String> sqlsA = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqlsA.add(SqlMapping.get("sweet_wechat_users_applet.insert"));
sqlsDataA.add(new Object[]{
wechatId, openId, unionId, phoneNumber, purePhoneNumber, countryCode, userType
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT.getKey(),
SqlMapping.gets(sqlsA, sqlsDataA));
SweetWechatUsersVo sweetWechatUsersVo = SweetWechatUsersVo.getNew();
sweetWechatUsersVo.setWechatId(wechatId);
sweetWechatUsersVo.setPhoneNumber(phoneNumber);
sweetWechatUsersVo.setPurePhoneNumber(purePhoneNumber);
sweetWechatUsersVo.setCountryCode(countryCode);
sweetWechatUsersVo.setType(userType);
redisUtils.setSweetWechatUsers(sweetWechatUsersVo);
}
SweetWechatUsersRelationVo sweetWechatUsersRelation = redisUtils.getSweetWechatUsersRelation(mobile);
if (null == sweetWechatUsersRelation) {
LinkedList<String> sqlsB = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataB = CollectionUtil.linkedListObjectArr();
sqlsB.add(SqlMapping.get("sweet_wechat_users_relation.insert"));
String wechatRelationId = IDGenerator.nextSnowId();
sqlsDataB.add(new Object[]{
wechatRelationId, unionId, userId, mobile
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT.getKey(),
SqlMapping.gets(sqlsB, sqlsDataB));
SweetWechatUsersRelationVo usersRelationVo = SweetWechatUsersRelationVo.getNew();
usersRelationVo.setWechatRelationId(wechatRelationId);
usersRelationVo.setUnionId(unionId);
usersRelationVo.setUserId(userId);
usersRelationVo.setUserPhone(mobile);
redisUtils.setSweetWechatUsersRelation(usersRelationVo);
}
// 返回给前端数据
HashMap<String, Object> userInfo = CollectionUtil.mapStringObject();
userInfo.put("unionId", unionId);
userInfo.put("openId", openId);
userInfo.put("getPhoneNumber", wxMaPhoneNumberInfo.getPhoneNumber());
userInfo.put("getPurePhoneNumber", wxMaPhoneNumberInfo.getPurePhoneNumber());
userInfo.put("getCountryCode", wxMaPhoneNumberInfo.getCountryCode());
registerByMobile(wxMaPhoneNumberInfo.getPurePhoneNumber());
LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("sweet_applet_user.insert"));
sqlsDataA.add(new Object[]{
IDGenerator.nextSnowId(), openId, unionId, wxMaPhoneNumberInfo.getPhoneNumber(), wxMaPhoneNumberInfo.getPurePhoneNumber()
, wxMaPhoneNumberInfo.getCountryCode(), type
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_APPLET_USER_INSERT.getKey(),
SqlMapping.gets(sqls, sqlsDataA));
return ResponseDto.success(userInfo);
} catch (Exception e) {
log.error("WechatUserInfoError Exception:{}", e);
......@@ -96,17 +126,6 @@ public class SweetWechatLoginServiceImpl {
}
}
@Async
public void registerByMobile(String mobile) {
try {
MultiValueMap<String, String> params = new LinkedMultiValueMap();
params.add("mobile", mobile);
HttpUtil.post(adamUrl.concat("/adam/rsc/reg/mobile"), params);
} catch (Exception e) {
log.error("registerByMobile失败 Exception:{}", e);
}
}
public ResponseDto<String> wxaCode2Session(String jsCode, Integer type) {
try {
WxMaJscode2SessionResult wxMaJscode2SessionResult = sweetWechatService.sessionInfo(jsCode, type);
......
......@@ -21,6 +21,7 @@ import com.liquidnet.service.sweet.mapper.SweetRemindMapper;
import com.liquidnet.service.sweet.param.SweetOpenSendMsgParam;
import com.liquidnet.service.sweet.utils.QueueUtils;
import com.liquidnet.service.sweet.utils.RedisDataUtils;
import com.liquidnet.service.sweet.vo.SweetWechatUsersVo;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
......@@ -164,7 +165,7 @@ public class SweetWechatTemplateServiceImpl {
return ResponseDto.success();
}
public void subscribeSend(WxMpService wxMpService, SweetWechatUser sweetWechatUser) {
public void subscribeSend(WxMpService wxMpService, SweetWechatUsersVo sweetWechatUser) {
String zhengzaiAppId = wechatMpConfigure.getWxMpService(1).getWxMpConfigStorage().getAppId();
String otherAppId = wxMpService.getWxMpConfigStorage().getAppId();
if (zhengzaiAppId.equals(otherAppId)) {
......
......@@ -41,8 +41,6 @@ sweet_user.update=UPDATE sweet_wechat_user SET is_cancel = ?, updated_at = ? WH
sweet_user.update2=UPDATE sweet_wechat_user SET adam_user_id = ?, adam_phone = ?, updated_at = ? WHERE unionId = ? and type = ?
# --------------------------提醒记录--------------------------
sweet_remind.insert=INSERT INTO sweet_remind (remind_id,openId,unionId,performancesId) VALUES (?,?,?,?)
# --------------------------小程序登录记录用户解密后信息--------------------------
sweet_applet_user.insert=INSERT INTO sweet_applet_user (user_id,openId,unionId,getPhoneNumber,getPurePhoneNumber,getCountryCode,type) VALUES (?,?,?,?,?,?,?)
# --------------------------用户投票记录--------------------------
sweet_city_vote.insert=INSERT INTO sweet_city_vote (vote_id,phone,openId,unionId,type,city_code,city_name,day_time) VALUES (?,?,?,?,?,?,?,?)
sweet_city_vote_stat.insert=INSERT INTO sweet_city_vote_stat (stat_id,city_code,city_name,vote_num,type) VALUES (?,?,?,?,?)
......@@ -51,4 +49,10 @@ sweet_city_vote_stat.update=UPDATE sweet_city_vote_stat SET vote_num = IFNULL(vo
sweet_antigenic_question.insert=INSERT INTO sweet_antigenic_question (question_id,type,openId,unionId,nickname,address,phone,urgent_phone,keyword1,keyword11,keyword2,keyword3,keyword4,keyword5,keyword6,keyword7) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------积分抽奖----------------------------
integral_activity_draw.insert=INSERT INTO sweet_integral_activity_draw (draw_id,integral_activity_id,activity_num,prize_id,prize_title,prize_type,prize_type_num,relation_id,user_id,nickname,receiving_status) VALUES (?,?,?,?,?,?,?,?,?,?,?)
integral_activity_draw.update=UPDATE sweet_integral_activity_draw SET receiving_addresses_id = ?, receiving_name = ?, receiving_phone = ?, receiving_address = ?, updated_at = ? WHERE draw_id = ?
\ No newline at end of file
integral_activity_draw.update=UPDATE sweet_integral_activity_draw SET receiving_addresses_id = ?, receiving_name = ?, receiving_phone = ?, receiving_address = ?, updated_at = ? WHERE draw_id = ?
# --------------------------微信用户信息表包含小程序公众号--------------------------
sweet_wechat_users_applet.insert=INSERT INTO sweet_wechat_users (wechat_id,open_id,union_id,phone_number,pure_phone_number,country_code,type) VALUES (?,?,?,?,?,?,?)
sweet_wechat_users_service.insert=INSERT INTO sweet_wechat_users (wechat_id,type,open_id,union_id,nickname,sex_desc,sex,head_img_url,language,country,province,city,subscribe_time,subscribe_scene) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)
sweet_wechat_users.delete=DELETE FROM sweet_wechat_users WHERE unionId = ? and type = ?
sweet_wechat_users_relation.insert=INSERT INTO sweet_wechat_users_relation (wechat_relation_id,union_id,user_id,user_phone) VALUES (?,?,?,?)
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