| | |
| | | package com.yeshi.fanli.service.impl.user.tb;
|
| | |
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import com.yeshi.fanli.entity.SystemEnum;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | |
|
| | | import com.aliyun.openservices.ons.api.Message;
|
| | | import com.aliyun.openservices.ons.api.Producer;
|
| | | import com.yeshi.fanli.dao.mybatis.user.UserExtraTaoBaoInfoMapper;
|
| | | import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
|
| | | import com.yeshi.fanli.dto.mq.user.body.TaoBaoBindSuccessMQMsg;
|
| | | import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode;
|
| | | import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
|
| | | import com.yeshi.fanli.entity.bus.user.UserAccountBindingHistory;
|
| | | import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.exception.user.UserExtraTaoBaoInfoException;
|
| | | import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService;
|
| | | import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
|
| | | import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
|
| | | import com.yeshi.fanli.service.manger.msg.RocketMQManager;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
|
| | | import com.yeshi.fanli.util.rocketmq.MQTopicName;
|
| | |
|
| | | @Service
|
| | | public class UserExtraTaoBaoInfoServiceImpl implements UserExtraTaoBaoInfoService {
|
| | |
|
| | | @Resource
|
| | | private UserExtraTaoBaoInfoMapper userExtraTaoBaoInfoMapper;
|
| | |
|
| | | @Resource
|
| | | private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
|
| | |
|
| | | @Resource
|
| | | private UserAccountBindingHistoryService userAccountBindingHistoryService;
|
| | |
|
| | | @Resource
|
| | | private RocketMQManager rocketMQManager;
|
| | |
|
| | | @Resource
|
| | | private UserInfoService userInfoService;
|
| | |
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | @Override
|
| | | public void addRelationId(Long uid, String relationId, String taoBaoUid, String nickName, boolean valid)
|
| | | throws UserExtraTaoBaoInfoException {
|
| | |
|
| | | if (uid == null || StringUtil.isNullOrEmpty(relationId) || StringUtil.isNullOrEmpty(taoBaoUid)) {
|
| | | throw new UserExtraTaoBaoInfoException(1, "传递参数为空");
|
| | | }
|
| | |
|
| | | // 验证taoBaoUid是否被封禁
|
| | | if (validateTaoBaoUidForbidden(taoBaoUid)) {
|
| | | throw new UserExtraTaoBaoInfoException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC);
|
| | | }
|
| | |
|
| | | //清除该用户的授权信息
|
| | | // userExtraTaoBaoInfoMapper.clearUid(uid);
|
| | | SystemEnum system = userInfoService.getUserSystem(uid);
|
| | | List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid,system);
|
| | | UserExtraTaoBaoInfo existInfo = null;
|
| | | if (list != null)
|
| | | for (UserExtraTaoBaoInfo tb : list) {
|
| | | SystemEnum se = userInfoService.getUserSystem(tb.getUser().getId());
|
| | | if (se == system) {
|
| | | existInfo = tb;
|
| | | break;
|
| | | }
|
| | | }
|
| | | UserExtraTaoBaoInfo taoBaoInfo = new UserExtraTaoBaoInfo();
|
| | | taoBaoInfo.setUser(new UserInfo(uid));
|
| | | taoBaoInfo.setTaoBaoNickName(nickName);
|
| | | taoBaoInfo.setTaoBaoUid(taoBaoUid);
|
| | | taoBaoInfo.setRelationId(relationId);
|
| | | taoBaoInfo.setRelationValid(valid);
|
| | | taoBaoInfo.setRelationUpdateTime(new Date());
|
| | |
|
| | |
|
| | | if (existInfo==null) {
|
| | | // 新增
|
| | | taoBaoInfo.setCreateTime(new Date());
|
| | | userExtraTaoBaoInfoMapper.insertSelective(taoBaoInfo);
|
| | | } else {
|
| | | // 取第一个替换uid 等信息
|
| | | taoBaoInfo.setId(existInfo.getId());
|
| | | taoBaoInfo.setUpdateTime(new Date());
|
| | | userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(taoBaoInfo);
|
| | |
|
| | | // // 清空多余已绑定数据
|
| | | // if (list.size() > 1) {
|
| | | // for (int i = 1; i < list.size(); i++) {
|
| | | // clearTaoBaoInfo(list.get(i));
|
| | | // }
|
| | | // }
|
| | | }
|
| | | }
|
| | |
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | @Override
|
| | | public void addSpecialId(Long uid, String specialId, String taoBaoUid, String nickName, boolean valid)
|
| | | throws UserExtraTaoBaoInfoException {
|
| | |
|
| | | if (uid == null || StringUtil.isNullOrEmpty(specialId) || StringUtil.isNullOrEmpty(taoBaoUid)) {
|
| | | throw new UserExtraTaoBaoInfoException(1, "传递参数为空");
|
| | | }
|
| | |
|
| | | // 验证taoBaoUid是否被封禁
|
| | | if (validateTaoBaoUidForbidden(taoBaoUid)) {
|
| | | throw new UserExtraTaoBaoInfoException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC);
|
| | | }
|
| | |
|
| | | // userExtraTaoBaoInfoMapper.clearUid(uid);
|
| | | SystemEnum system = userInfoService.getUserSystem(uid);
|
| | |
|
| | | UserExtraTaoBaoInfo taoBaoInfo = new UserExtraTaoBaoInfo();
|
| | | taoBaoInfo.setUser(new UserInfo(uid));
|
| | | taoBaoInfo.setTaoBaoNickName(nickName);
|
| | | taoBaoInfo.setTaoBaoUid(taoBaoUid);
|
| | | taoBaoInfo.setSpecialValid(valid);
|
| | | taoBaoInfo.setSpecialId(specialId);
|
| | | taoBaoInfo.setSpecialUpdateTime(new Date());
|
| | |
|
| | | userExtraTaoBaoInfoMapper.clearUid(uid);
|
| | |
|
| | | List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid,system);
|
| | | if (list == null || list.size() == 0) {
|
| | | // 新增
|
| | | taoBaoInfo.setCreateTime(new Date());
|
| | | userExtraTaoBaoInfoMapper.insertSelective(taoBaoInfo);
|
| | | } else {
|
| | | // 取第一个替换uid 等信息
|
| | | taoBaoInfo.setId(list.get(0).getId());
|
| | | taoBaoInfo.setUpdateTime(new Date());
|
| | | userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(taoBaoInfo);
|
| | |
|
| | | // 清空多余已绑定数据
|
| | | if (list.size() > 1) {
|
| | | for (int i = 1; i < list.size(); i++) {
|
| | | clearTaoBaoInfo(list.get(i));
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | @Override
|
| | | public void saveUserTaoBaoInfo(Long uid, String relationId, String specialId, String taoBaoUid, String nickName,
|
| | | boolean valid) throws UserExtraTaoBaoInfoException {
|
| | |
|
| | | if (uid == null || StringUtil.isNullOrEmpty(relationId) || StringUtil.isNullOrEmpty(specialId)
|
| | | || StringUtil.isNullOrEmpty(taoBaoUid)) {
|
| | | throw new UserExtraTaoBaoInfoException(1, "传递参数部分为空");
|
| | | }
|
| | |
|
| | | // 验证taoBaoUid是否被封禁
|
| | | if (validateTaoBaoUidForbidden(taoBaoUid)) {
|
| | | throw new UserExtraTaoBaoInfoException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC);
|
| | | }
|
| | |
|
| | | SystemEnum system=userInfoService.getUserSystem(uid);
|
| | |
|
| | | UserExtraTaoBaoInfo taoBaoInfo = new UserExtraTaoBaoInfo();
|
| | | taoBaoInfo.setTaoBaoUid(taoBaoUid);
|
| | | taoBaoInfo.setTaoBaoNickName(nickName);
|
| | | taoBaoInfo.setUser(new UserInfo(uid));
|
| | | // 渠道
|
| | | taoBaoInfo.setRelationValid(valid);
|
| | | taoBaoInfo.setRelationId(relationId);
|
| | | taoBaoInfo.setRelationUpdateTime(new Date());
|
| | | // 绑定
|
| | | taoBaoInfo.setSpecialValid(valid);
|
| | | taoBaoInfo.setSpecialId(specialId);
|
| | | taoBaoInfo.setSpecialUpdateTime(new Date());
|
| | |
|
| | | List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid,system);
|
| | |
|
| | | // 判断之前用户是否绑定过
|
| | | UserExtraTaoBaoInfo info = userExtraTaoBaoInfoMapper.selectByUid(uid);
|
| | |
|
| | | // 清除之前的用户ID
|
| | | userExtraTaoBaoInfoMapper.clearUid(uid);
|
| | | Long fromUid = null;
|
| | |
|
| | | if (list == null || list.size() == 0) {
|
| | | // 新增
|
| | | taoBaoInfo.setCreateTime(new Date());
|
| | | userExtraTaoBaoInfoMapper.insertSelective(taoBaoInfo);
|
| | | } else {
|
| | | if (list.get(0).getUser() != null)
|
| | | fromUid = list.get(0).getUser().getId();
|
| | | // 取第一个替换uid 等信息
|
| | | taoBaoInfo.setId(list.get(0).getId());
|
| | | taoBaoInfo.setUpdateTime(new Date());
|
| | | userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(taoBaoInfo);
|
| | |
|
| | | // 清空多余已绑定数据
|
| | | if (list.size() > 1) {
|
| | | for (int i = 1; i < list.size(); i++) {
|
| | | clearTaoBaoInfo(list.get(i));
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | // 加入绑定记录
|
| | | UserAccountBindingHistory history = new UserAccountBindingHistory();
|
| | | history.setContent(taoBaoUid);
|
| | | history.setType(UserAccountBindingHistory.TYPE_TB);
|
| | | history.setUid(uid);
|
| | |
|
| | | // 之前已经绑定电话号码
|
| | | if (info != null)
|
| | | history.setFirst(false);
|
| | | else
|
| | | history.setFirst(true);
|
| | | userAccountBindingHistoryService.addUserAccountBindingHistory(history);
|
| | |
|
| | | Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.taobaoBindSuccess,
|
| | | new TaoBaoBindSuccessMQMsg(uid, fromUid, taoBaoUid, new Date()));
|
| | |
|
| | | rocketMQManager.sendNormalMsg(message, null);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 验证taoBaoUid 是否被封
|
| | | *
|
| | | * @param taoBaoUid
|
| | | * @return
|
| | | */
|
| | | public boolean validateTaoBaoUidForbidden(String taoBaoUid) {
|
| | | boolean validate = false;
|
| | | ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService
|
| | | .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, taoBaoUid);
|
| | | // 账号被封
|
| | | if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective()) {
|
| | | validate = true;
|
| | | }
|
| | | return validate;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 清空多余绑定淘宝账号信息
|
| | | *
|
| | | * @param otherInfo
|
| | | */
|
| | | public void clearTaoBaoInfo(UserExtraTaoBaoInfo otherInfo) {
|
| | | otherInfo.setUser(null);
|
| | | otherInfo.setTaoBaoUid(null);
|
| | | otherInfo.setTaoBaoNickName(null);
|
| | |
|
| | | otherInfo.setRelationValid(null);
|
| | | otherInfo.setRelationId(null);
|
| | | otherInfo.setRelationUpdateTime(null);
|
| | |
|
| | | otherInfo.setSpecialValid(null);
|
| | | otherInfo.setSpecialId(null);
|
| | | otherInfo.setSpecialUpdateTime(new Date());
|
| | | userExtraTaoBaoInfoMapper.updateByPrimaryKey(otherInfo);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public UserExtraTaoBaoInfo getByUid(Long uid) {
|
| | | return userExtraTaoBaoInfoMapper.selectByUid(uid);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void updateSelective(UserExtraTaoBaoInfo ue) {
|
| | | if (ue == null || ue.getId() == null)
|
| | | return;
|
| | | userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(ue);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void unBindUid(Long uid) {
|
| | | userExtraTaoBaoInfoMapper.clearUid(uid);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void bindTaoBaoOrderEnd6Num(String taoBaoUid, String orderId) {
|
| | | if (taoBaoUid == null || StringUtil.isNullOrEmpty(orderId))
|
| | | return;
|
| | | UserExtraTaoBaoInfo extraInfo = userExtraTaoBaoInfoMapper.selectByTaoBaoUid(taoBaoUid,null);
|
| | | if (extraInfo != null) {
|
| | | UserExtraTaoBaoInfo update = new UserExtraTaoBaoInfo();
|
| | | update.setId(extraInfo.getId());
|
| | | update.setTaoBaoOrderEnd6Num(orderId);
|
| | | update.setUpdateTime(new Date());
|
| | | userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(update);
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | @Override
|
| | | public UserExtraTaoBaoInfo getByRelationId(String relationId,SystemEnum system) {
|
| | | if (StringUtil.isNullOrEmpty(relationId))
|
| | | return null;
|
| | | return userExtraTaoBaoInfoMapper.selectByRelationIdWithUidNotNull(relationId,system);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public UserExtraTaoBaoInfo getBySpecialId(String specialId,SystemEnum system) {
|
| | | if (StringUtil.isNullOrEmpty(specialId))
|
| | | return null;
|
| | | return userExtraTaoBaoInfoMapper.selectBySpecialIdWithUidNotNull(specialId,system);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public String getRelationIdByUid(Long uid) {
|
| | | UserExtraTaoBaoInfo extraInfo = getByUid(uid);
|
| | | String relationId = null;
|
| | | if (extraInfo != null && extraInfo.getRelationId() != null && extraInfo.getRelationValid() != null
|
| | | && extraInfo.getRelationValid() == true)
|
| | | relationId = extraInfo.getRelationId();
|
| | | return relationId;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public String getSpecialIdByUid(Long uid) {
|
| | | UserExtraTaoBaoInfo extraInfo = getByUid(uid);
|
| | | String specialId = null;
|
| | | if (extraInfo != null && extraInfo.getSpecialId() != null && extraInfo.getSpecialValid() != null
|
| | | && extraInfo.getSpecialValid() == true)
|
| | | specialId = extraInfo.getSpecialId();
|
| | | return specialId;
|
| | | }
|
| | |
|
| | | }
|
| | | package com.yeshi.fanli.service.impl.user.tb; |
| | | |
| | | import java.util.Collections; |
| | | import java.util.Comparator; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import com.yeshi.fanli.entity.SystemEnum; |
| | | import com.yeshi.fanli.service.inter.user.UserInfoService; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import com.aliyun.openservices.ons.api.Message; |
| | | import com.aliyun.openservices.ons.api.Producer; |
| | | import com.yeshi.fanli.dao.mybatis.user.UserExtraTaoBaoInfoMapper; |
| | | import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum; |
| | | import com.yeshi.fanli.dto.mq.user.body.TaoBaoBindSuccessMQMsg; |
| | | import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode; |
| | | import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum; |
| | | import com.yeshi.fanli.entity.bus.user.UserAccountBindingHistory; |
| | | import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; |
| | | import com.yeshi.fanli.entity.bus.user.UserInfo; |
| | | import com.yeshi.fanli.exception.user.UserExtraTaoBaoInfoException; |
| | | import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService; |
| | | import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService; |
| | | import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; |
| | | import com.yeshi.fanli.service.manger.msg.RocketMQManager; |
| | | import com.yeshi.fanli.util.Constant; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory; |
| | | import com.yeshi.fanli.util.rocketmq.MQTopicName; |
| | | |
| | | @Service |
| | | public class UserExtraTaoBaoInfoServiceImpl implements UserExtraTaoBaoInfoService { |
| | | |
| | | @Resource |
| | | private UserExtraTaoBaoInfoMapper userExtraTaoBaoInfoMapper; |
| | | |
| | | @Resource |
| | | private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; |
| | | |
| | | @Resource |
| | | private UserAccountBindingHistoryService userAccountBindingHistoryService; |
| | | |
| | | @Resource |
| | | private RocketMQManager rocketMQManager; |
| | | |
| | | @Resource |
| | | private UserInfoService userInfoService; |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public void addRelationId(Long uid, String relationId, String taoBaoUid, String nickName, boolean valid) |
| | | throws UserExtraTaoBaoInfoException { |
| | | |
| | | if (uid == null || StringUtil.isNullOrEmpty(relationId) || StringUtil.isNullOrEmpty(taoBaoUid)) { |
| | | throw new UserExtraTaoBaoInfoException(1, "传递参数为空"); |
| | | } |
| | | |
| | | // 验证taoBaoUid是否被封禁 |
| | | if (validateTaoBaoUidForbidden(taoBaoUid)) { |
| | | throw new UserExtraTaoBaoInfoException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); |
| | | } |
| | | |
| | | //清除该用户的授权信息 |
| | | // userExtraTaoBaoInfoMapper.clearUid(uid); |
| | | SystemEnum system = userInfoService.getUserSystem(uid); |
| | | List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid, system); |
| | | UserExtraTaoBaoInfo existInfo = null; |
| | | if (list != null) |
| | | for (UserExtraTaoBaoInfo tb : list) { |
| | | SystemEnum se = userInfoService.getUserSystem(tb.getUser().getId()); |
| | | if (se == system) { |
| | | existInfo = tb; |
| | | break; |
| | | } |
| | | } |
| | | UserExtraTaoBaoInfo taoBaoInfo = new UserExtraTaoBaoInfo(); |
| | | taoBaoInfo.setUser(new UserInfo(uid)); |
| | | taoBaoInfo.setTaoBaoNickName(nickName); |
| | | taoBaoInfo.setTaoBaoUid(taoBaoUid); |
| | | taoBaoInfo.setRelationId(relationId); |
| | | taoBaoInfo.setRelationValid(valid); |
| | | taoBaoInfo.setRelationUpdateTime(new Date()); |
| | | |
| | | |
| | | if (existInfo == null) { |
| | | // 新增 |
| | | taoBaoInfo.setCreateTime(new Date()); |
| | | userExtraTaoBaoInfoMapper.insertSelective(taoBaoInfo); |
| | | } else { |
| | | // 取第一个替换uid 等信息 |
| | | taoBaoInfo.setId(existInfo.getId()); |
| | | taoBaoInfo.setUpdateTime(new Date()); |
| | | userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(taoBaoInfo); |
| | | |
| | | // // 清空多余已绑定数据 |
| | | // if (list.size() > 1) { |
| | | // for (int i = 1; i < list.size(); i++) { |
| | | // clearTaoBaoInfo(list.get(i)); |
| | | // } |
| | | // } |
| | | } |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public void addSpecialId(Long uid, String specialId, String taoBaoUid, String nickName, boolean valid) |
| | | throws UserExtraTaoBaoInfoException { |
| | | |
| | | if (uid == null || StringUtil.isNullOrEmpty(specialId) || StringUtil.isNullOrEmpty(taoBaoUid)) { |
| | | throw new UserExtraTaoBaoInfoException(1, "传递参数为空"); |
| | | } |
| | | |
| | | // 验证taoBaoUid是否被封禁 |
| | | if (validateTaoBaoUidForbidden(taoBaoUid)) { |
| | | throw new UserExtraTaoBaoInfoException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); |
| | | } |
| | | |
| | | // userExtraTaoBaoInfoMapper.clearUid(uid); |
| | | SystemEnum system = userInfoService.getUserSystem(uid); |
| | | |
| | | UserExtraTaoBaoInfo taoBaoInfo = new UserExtraTaoBaoInfo(); |
| | | taoBaoInfo.setUser(new UserInfo(uid)); |
| | | taoBaoInfo.setTaoBaoNickName(nickName); |
| | | taoBaoInfo.setTaoBaoUid(taoBaoUid); |
| | | taoBaoInfo.setSpecialValid(valid); |
| | | taoBaoInfo.setSpecialId(specialId); |
| | | taoBaoInfo.setSpecialUpdateTime(new Date()); |
| | | |
| | | userExtraTaoBaoInfoMapper.clearUid(uid); |
| | | |
| | | List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid, system); |
| | | if (list == null || list.size() == 0) { |
| | | // 新增 |
| | | taoBaoInfo.setCreateTime(new Date()); |
| | | userExtraTaoBaoInfoMapper.insertSelective(taoBaoInfo); |
| | | } else { |
| | | // 取第一个替换uid 等信息 |
| | | taoBaoInfo.setId(list.get(0).getId()); |
| | | taoBaoInfo.setUpdateTime(new Date()); |
| | | userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(taoBaoInfo); |
| | | |
| | | // 清空多余已绑定数据 |
| | | if (list.size() > 1) { |
| | | for (int i = 1; i < list.size(); i++) { |
| | | clearTaoBaoInfo(list.get(i)); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public void saveUserTaoBaoInfo(Long uid, String relationId, String specialId, String taoBaoUid, String nickName, |
| | | boolean valid) throws UserExtraTaoBaoInfoException { |
| | | |
| | | if (uid == null || StringUtil.isNullOrEmpty(relationId) || StringUtil.isNullOrEmpty(specialId) |
| | | || StringUtil.isNullOrEmpty(taoBaoUid)) { |
| | | throw new UserExtraTaoBaoInfoException(1, "传递参数部分为空"); |
| | | } |
| | | |
| | | // 验证taoBaoUid是否被封禁 |
| | | if (validateTaoBaoUidForbidden(taoBaoUid)) { |
| | | throw new UserExtraTaoBaoInfoException(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC); |
| | | } |
| | | |
| | | SystemEnum system = userInfoService.getUserSystem(uid); |
| | | |
| | | UserExtraTaoBaoInfo taoBaoInfo = new UserExtraTaoBaoInfo(); |
| | | taoBaoInfo.setTaoBaoUid(taoBaoUid); |
| | | taoBaoInfo.setTaoBaoNickName(nickName); |
| | | taoBaoInfo.setUser(new UserInfo(uid)); |
| | | // 渠道 |
| | | taoBaoInfo.setRelationValid(valid); |
| | | taoBaoInfo.setRelationId(relationId); |
| | | taoBaoInfo.setRelationUpdateTime(new Date()); |
| | | // 绑定 |
| | | taoBaoInfo.setSpecialValid(valid); |
| | | taoBaoInfo.setSpecialId(specialId); |
| | | taoBaoInfo.setSpecialUpdateTime(new Date()); |
| | | |
| | | List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid, system); |
| | | |
| | | // 判断之前用户是否绑定过 |
| | | UserExtraTaoBaoInfo info = userExtraTaoBaoInfoMapper.selectByUid(uid); |
| | | |
| | | // 清除之前的用户ID |
| | | userExtraTaoBaoInfoMapper.clearUid(uid); |
| | | Long fromUid = null; |
| | | |
| | | if (list == null || list.size() == 0) { |
| | | // 新增 |
| | | taoBaoInfo.setCreateTime(new Date()); |
| | | userExtraTaoBaoInfoMapper.insertSelective(taoBaoInfo); |
| | | } else { |
| | | if (list.get(0).getUser() != null) |
| | | fromUid = list.get(0).getUser().getId(); |
| | | // 取第一个替换uid 等信息 |
| | | taoBaoInfo.setId(list.get(0).getId()); |
| | | taoBaoInfo.setUpdateTime(new Date()); |
| | | userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(taoBaoInfo); |
| | | |
| | | // 清空多余已绑定数据 |
| | | if (list.size() > 1) { |
| | | for (int i = 1; i < list.size(); i++) { |
| | | clearTaoBaoInfo(list.get(i)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 加入绑定记录 |
| | | UserAccountBindingHistory history = new UserAccountBindingHistory(); |
| | | history.setContent(taoBaoUid); |
| | | history.setType(UserAccountBindingHistory.TYPE_TB); |
| | | history.setUid(uid); |
| | | |
| | | // 之前已经绑定电话号码 |
| | | if (info != null) |
| | | history.setFirst(false); |
| | | else |
| | | history.setFirst(true); |
| | | userAccountBindingHistoryService.addUserAccountBindingHistory(history); |
| | | |
| | | Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.taobaoBindSuccess, |
| | | new TaoBaoBindSuccessMQMsg(uid, fromUid, taoBaoUid, new Date())); |
| | | |
| | | rocketMQManager.sendNormalMsg(message, null); |
| | | } |
| | | |
| | | /** |
| | | * 验证taoBaoUid 是否被封 |
| | | * |
| | | * @param taoBaoUid |
| | | * @return |
| | | */ |
| | | public boolean validateTaoBaoUidForbidden(String taoBaoUid) { |
| | | boolean validate = false; |
| | | ForbiddenUserIdentifyCode identifyCode = forbiddenUserIdentifyCodeService |
| | | .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, taoBaoUid); |
| | | // 账号被封 |
| | | if (identifyCode != null && identifyCode.getEffective() != null && identifyCode.getEffective()) { |
| | | validate = true; |
| | | } |
| | | return validate; |
| | | } |
| | | |
| | | /** |
| | | * 清空多余绑定淘宝账号信息 |
| | | * |
| | | * @param otherInfo |
| | | */ |
| | | public void clearTaoBaoInfo(UserExtraTaoBaoInfo otherInfo) { |
| | | otherInfo.setUser(null); |
| | | otherInfo.setTaoBaoUid(null); |
| | | otherInfo.setTaoBaoNickName(null); |
| | | |
| | | otherInfo.setRelationValid(null); |
| | | otherInfo.setRelationId(null); |
| | | otherInfo.setRelationUpdateTime(null); |
| | | |
| | | otherInfo.setSpecialValid(null); |
| | | otherInfo.setSpecialId(null); |
| | | otherInfo.setSpecialUpdateTime(new Date()); |
| | | userExtraTaoBaoInfoMapper.updateByPrimaryKey(otherInfo); |
| | | } |
| | | |
| | | @Override |
| | | public UserExtraTaoBaoInfo getByUid(Long uid) { |
| | | return userExtraTaoBaoInfoMapper.selectByUid(uid); |
| | | } |
| | | |
| | | @Override |
| | | public void updateSelective(UserExtraTaoBaoInfo ue) { |
| | | if (ue == null || ue.getId() == null) |
| | | return; |
| | | userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(ue); |
| | | } |
| | | |
| | | @Override |
| | | public void unBindUid(Long uid) { |
| | | userExtraTaoBaoInfoMapper.clearUid(uid); |
| | | } |
| | | |
| | | @Override |
| | | public void bindTaoBaoOrderEnd6Num(String taoBaoUid, String orderId) { |
| | | if (taoBaoUid == null || StringUtil.isNullOrEmpty(orderId)) |
| | | return; |
| | | UserExtraTaoBaoInfo extraInfo = userExtraTaoBaoInfoMapper.selectByTaoBaoUid(taoBaoUid, null); |
| | | if (extraInfo != null) { |
| | | UserExtraTaoBaoInfo update = new UserExtraTaoBaoInfo(); |
| | | update.setId(extraInfo.getId()); |
| | | update.setTaoBaoOrderEnd6Num(orderId); |
| | | update.setUpdateTime(new Date()); |
| | | userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(update); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public UserExtraTaoBaoInfo getByRelationId(String relationId, List<SystemEnum> systemList) { |
| | | if (StringUtil.isNullOrEmpty(relationId)) |
| | | return null; |
| | | return userExtraTaoBaoInfoMapper.selectByRelationIdWithUidNotNull(relationId, systemList); |
| | | } |
| | | |
| | | @Override |
| | | public UserExtraTaoBaoInfo getBySpecialId(String specialId, List<SystemEnum> systemList) { |
| | | if (StringUtil.isNullOrEmpty(specialId)) |
| | | return null; |
| | | List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.selectBySpecialIdWithUidNotNull(specialId, systemList); |
| | | if (list == null || list.size() == 0) { |
| | | return null; |
| | | } |
| | | if (list.size() == 1) { |
| | | return list.get(0); |
| | | } |
| | | //多个系统采用统一PID的情况 |
| | | //uid较小的在前 |
| | | Comparator<UserExtraTaoBaoInfo> comparator = new Comparator<UserExtraTaoBaoInfo>() { |
| | | @Override |
| | | public int compare(UserExtraTaoBaoInfo o1, UserExtraTaoBaoInfo o2) { |
| | | //uid从小到大排列 |
| | | return (int) (o1.getUser().getId().longValue() - o2.getUser().getId().longValue()); |
| | | } |
| | | }; |
| | | Collections.sort(list, comparator); |
| | | return list.get(0); |
| | | } |
| | | |
| | | @Override |
| | | public String getRelationIdByUid(Long uid) { |
| | | UserExtraTaoBaoInfo extraInfo = getByUid(uid); |
| | | String relationId = null; |
| | | if (extraInfo != null && extraInfo.getRelationId() != null && extraInfo.getRelationValid() != null |
| | | && extraInfo.getRelationValid() == true) |
| | | relationId = extraInfo.getRelationId(); |
| | | return relationId; |
| | | } |
| | | |
| | | @Override |
| | | public String getSpecialIdByUid(Long uid) { |
| | | UserExtraTaoBaoInfo extraInfo = getByUid(uid); |
| | | String specialId = null; |
| | | if (extraInfo != null && extraInfo.getSpecialId() != null && extraInfo.getSpecialValid() != null |
| | | && extraInfo.getSpecialValid() == true) |
| | | specialId = extraInfo.getSpecialId(); |
| | | return specialId; |
| | | } |
| | | |
| | | } |