package com.yeshi.fanli.service.impl.user;
|
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
import javax.transaction.Transactional;
|
|
import org.springframework.stereotype.Service;
|
|
import com.yeshi.fanli.dao.mybatis.user.UserExtraTaoBaoInfoMapper;
|
import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode;
|
import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
|
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.UserExtraTaoBaoInfoService;
|
import com.yeshi.fanli.util.Constant;
|
import com.yeshi.fanli.util.StringUtil;
|
|
@Service
|
public class UserExtraTaoBaoInfoServiceImpl implements UserExtraTaoBaoInfoService {
|
|
@Resource
|
private UserExtraTaoBaoInfoMapper userExtraTaoBaoInfoMapper;
|
|
@Resource
|
private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
|
|
|
@Transactional
|
@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);
|
}
|
|
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());
|
|
List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid);
|
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
|
@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);
|
}
|
|
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());
|
|
List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid);
|
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
|
@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);
|
}
|
|
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);
|
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));
|
}
|
}
|
}
|
}
|
|
/**
|
* 验证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);
|
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) {
|
if (StringUtil.isNullOrEmpty(relationId))
|
return null;
|
return userExtraTaoBaoInfoMapper.selectByRelationIdWithUidNotNull(relationId);
|
}
|
|
@Override
|
public UserExtraTaoBaoInfo getBySpecialId(String specialId) {
|
if (StringUtil.isNullOrEmpty(specialId))
|
return null;
|
return userExtraTaoBaoInfoMapper.selectBySpecialIdWithUidNotNull(specialId);
|
}
|
|
}
|