From 1da17d215d48e3e3aa9e8d7a3ef526904764f408 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期一, 08 四月 2019 14:06:12 +0800 Subject: [PATCH] 1.5.3部分需求 提交 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java | 208 ++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 168 insertions(+), 40 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 99e97d3..ff1d4af 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,22 @@ 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 @@ -17,57 +24,178 @@ @Resource private UserExtraTaoBaoInfoMapper userExtraTaoBaoInfoMapper; + + @Resource + private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; + + @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()); + + 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); + 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 { - UserExtraTaoBaoInfo update = new UserExtraTaoBaoInfo(); - update.setId(info.getId()); - update.setSpecialId(specialId); - update.setSpecialUpdateTime(new Date()); - update.setSpecialValid(valid); - 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 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 { + // 鍙栫涓�涓浛鎹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)); + } + } + } + } + + /** + * 楠岃瘉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); -- Gitblit v1.8.0