|
@@ -4,14 +4,12 @@ import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
|
import cn.newfeifan.mall.module.distri.service.duser.DuserService;
|
|
|
import cn.newfeifan.mall.module.member.dal.dataobject.user.MemberUserDO;
|
|
|
import cn.newfeifan.mall.module.member.service.user.MemberUserService;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
-import java.util.*;
|
|
|
|
|
|
import cn.newfeifan.mall.module.distri.controller.admin.sharepath.vo.*;
|
|
|
import cn.newfeifan.mall.module.distri.dal.dataobject.sharepath.SharePathDO;
|
|
@@ -54,43 +52,37 @@ public class SharePathServiceImpl implements SharePathService {
|
|
|
|
|
|
@Override
|
|
|
public void createSharePathByUserId(SharePathSaveReqVO createReqVO) {
|
|
|
+ // 如果直推人为空, 则直接结束
|
|
|
+ if (createReqVO.getDescendant() == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
// 判断当前直推人是否有父亲
|
|
|
Boolean has = hasParent(createReqVO.getDescendant());
|
|
|
if (has) {
|
|
|
throw exception(HAS_PARENT);
|
|
|
}
|
|
|
+ MemberUserDO ancestor = memberUserService.getUser(createReqVO.getAncestor());
|
|
|
+ MemberUserDO descendant = memberUserService.getUser(createReqVO.getDescendant());
|
|
|
+
|
|
|
// 创建直推人以及推荐人的关系
|
|
|
// 需要判断当前推荐人跟直推人是否已经存在于用户表(duser)了
|
|
|
duserService.hasUserAndCreat(createReqVO);
|
|
|
+
|
|
|
// 存储他们之间的关系
|
|
|
- sharePathMapper.addNode(createReqVO.getAncestor(), createReqVO.getDescendant());
|
|
|
+ sharePathMapper.addNode(
|
|
|
+ createReqVO.getAncestor(),
|
|
|
+ ancestor.getName(),
|
|
|
+ ancestor.getNickname(),
|
|
|
+ ancestor.getMobile(),
|
|
|
|
|
|
- //保存用户的基本信息
|
|
|
- saveSharePathName(createReqVO.getDescendant());
|
|
|
- }
|
|
|
+ createReqVO.getDescendant(),
|
|
|
+ descendant.getName(),
|
|
|
+ descendant.getNickname(),
|
|
|
+ descendant.getMobile());
|
|
|
|
|
|
- private void saveSharePathName(Long descendant){
|
|
|
- List<SharePathDO> sharePathDOS = sharePathMapper.selectList(new LambdaQueryWrapper<SharePathDO>()
|
|
|
- .eq(SharePathDO::getDescendant, descendant)
|
|
|
- );
|
|
|
-
|
|
|
- for (SharePathDO sharePathDO : sharePathDOS) {
|
|
|
- MemberUserDO ancestor = memberUserService.getUser(sharePathDO.getAncestor());
|
|
|
- MemberUserDO descendantUser = memberUserService.getUser(sharePathDO.getDescendant());
|
|
|
- if (ancestor != null && descendantUser != null) {
|
|
|
- sharePathDO.setAncName(ancestor.getName());
|
|
|
- sharePathDO.setAncNickName(ancestor.getNickname());
|
|
|
- sharePathDO.setAncPhone(ancestor.getMobile());
|
|
|
- sharePathDO.setDescName(descendantUser.getName());
|
|
|
- sharePathDO.setDescNickName(descendantUser.getNickname());
|
|
|
- sharePathDO.setDescPhone(descendantUser.getMobile());
|
|
|
- sharePathMapper.updateById(sharePathDO);
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
private Boolean hasParent(Long descendant) {
|
|
|
SharePathDO sharePathDO = sharePathMapper.selectOne(new LambdaQueryWrapperX<SharePathDO>()
|
|
|
.eqIfPresent(SharePathDO::getDescendant, descendant)
|