From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 30 七月 2019 09:07:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java | 254 ++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 213 insertions(+), 41 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 621449b..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,15 +1,24 @@ 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 @@ -18,54 +27,203 @@ @Resource private UserExtraTaoBaoInfoMapper userExtraTaoBaoInfoMapper; + @Resource + private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; + + @Resource + private UserAccountBindingHistoryService userAccountBindingHistoryService; + + @Transactional @Override - public void addRelationId(Long uid, String relationId, String taoBaoUid, boolean valid) { - if (uid == null || relationId == null) - return; - UserExtraTaoBaoInfo info = getByUid(uid); - if (info == null) { - info = new UserExtraTaoBaoInfo(); - info.setUser(new UserInfo(uid)); - info.setCreateTime(new Date()); - info.setRelationId(relationId); - info.setRelationUpdateTime(new Date()); - info.setRelationValid(valid); - info.setTaoBaoUid(taoBaoUid); - 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.setRelationValid(valid); - update.setRelationUpdateTime(new Date()); - update.setTaoBaoUid(taoBaoUid); - 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, String taoBaoUid, boolean valid) { - if (uid == null || specialId == null) - return; - UserExtraTaoBaoInfo info = getByUid(uid); - if (info == null) { - info = new UserExtraTaoBaoInfo(); - info.setUser(new UserInfo(uid)); - info.setCreateTime(new Date()); - info.setSpecialId(specialId); - info.setSpecialUpdateTime(new Date()); - info.setSpecialValid(valid); - info.setTaoBaoUid(taoBaoUid); - userExtraTaoBaoInfoMapper.insertSelective(info); - } else { - UserExtraTaoBaoInfo update = new UserExtraTaoBaoInfo(); - update.setId(info.getId()); - update.setSpecialId(specialId); - update.setSpecialUpdateTime(new Date()); - update.setSpecialValid(valid); - update.setTaoBaoUid(taoBaoUid); - 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 @@ -102,12 +260,26 @@ @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