From 78f3f67d4629583b5ed5bf7ac8552344f0403ced Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 23 八月 2019 17:29:36 +0800
Subject: [PATCH] 金币获取拦截修改
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java | 283 ++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 252 insertions(+), 31 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java
index 5a9b489..e622a7c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java
@@ -1,14 +1,25 @@
package com.yeshi.fanli.service.impl.user;
import java.util.Date;
+import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
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.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.UserExtraTaoBaoInfoService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.StringUtil;
@Service
public class UserExtraTaoBaoInfoServiceImpl implements UserExtraTaoBaoInfoService {
@@ -16,44 +27,203 @@
@Resource
private UserExtraTaoBaoInfoMapper userExtraTaoBaoInfoMapper;
+ @Resource
+ private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
+
+ @Resource
+ private UserAccountBindingHistoryService userAccountBindingHistoryService;
+
+ @Transactional
@Override
- public void addRelationId(Long uid, String relationId) {
- if (uid == null || relationId == null)
- return;
- UserExtraTaoBaoInfo info = getByUid(uid);
- if (info == null) {
- info = new UserExtraTaoBaoInfo();
- info.setCreateTime(new Date());
- info.setRelationId(relationId);
- info.setRelationUpdateTime(new Date());
- userExtraTaoBaoInfoMapper.insertSelective(info);
+ 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());
+
+ userExtraTaoBaoInfoMapper.clearUid(uid);
+
+ List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid);
+ if (list == null || list.size() == 0) {
+ // 鏂板
+ taoBaoInfo.setCreateTime(new Date());
+ userExtraTaoBaoInfoMapper.insertSelective(taoBaoInfo);
} else {
- UserExtraTaoBaoInfo update = new UserExtraTaoBaoInfo();
- update.setId(info.getId());
- update.setRelationId(relationId);
- update.setRelationUpdateTime(new Date());
- userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(update);
+ // 鍙栫涓�涓浛鎹id 绛変俊鎭�
+ 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) {
- if (uid == null || specialId == null)
- return;
- UserExtraTaoBaoInfo info = getByUid(uid);
- if (info == null) {
- info = new UserExtraTaoBaoInfo();
- info.setCreateTime(new Date());
- info.setSpecialId(specialId);
- info.setSpecialUpdateTime(new Date());
- userExtraTaoBaoInfoMapper.insertSelective(info);
- } else {
- UserExtraTaoBaoInfo update = new UserExtraTaoBaoInfo();
- update.setId(info.getId());
- update.setSpecialId(specialId);
- update.setSpecialUpdateTime(new Date());
- userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(update);
+ 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());
+
+ userExtraTaoBaoInfoMapper.clearUid(uid);
+
+ List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid);
+ if (list == null || list.size() == 0) {
+ // 鏂板
+ taoBaoInfo.setCreateTime(new Date());
+ userExtraTaoBaoInfoMapper.insertSelective(taoBaoInfo);
+ } else {
+ // 鍙栫涓�涓浛鎹id 绛変俊鎭�
+ 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);
+
+ // 鍒ゆ柇涔嬪墠鐢ㄦ埛鏄惁缁戝畾杩�
+ UserExtraTaoBaoInfo info = userExtraTaoBaoInfoMapper.selectByUid(uid);
+
+ // 娓呴櫎涔嬪墠鐨勭敤鎴稩D
+ userExtraTaoBaoInfoMapper.clearUid(uid);
+
+ if (list == null || list.size() == 0) {
+ // 鏂板
+ taoBaoInfo.setCreateTime(new Date());
+ userExtraTaoBaoInfoMapper.insertSelective(taoBaoInfo);
+ } else {
+ // 鍙栫涓�涓浛鎹id 绛変俊鎭�
+ 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);
+ }
+
+ /**
+ * 楠岃瘉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
@@ -61,4 +231,55 @@
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);
+ }
+
+ @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;
+ }
+
}
--
Gitblit v1.8.0