package com.sinata.rest.modular.member.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.sinata.common.user.UserHierarchy;
|
import com.sinata.common.user.VoUserGradeParent;
|
import com.sinata.rest.modular.mall.controller.vo.VoTeamUser;
|
import com.sinata.rest.modular.member.dao.MemUserRelationMapper;
|
import com.sinata.rest.modular.member.model.MemUser;
|
import com.sinata.rest.modular.member.model.MemUserRelation;
|
import com.sinata.rest.modular.member.service.IMemUserRelationService;
|
import com.sinata.rest.modular.member.service.IMemUserService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.StringUtils;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 会员邀请关系 服务实现类
|
* </p>
|
*
|
* @author goku
|
* @since 2023-03-23
|
*/
|
@Service
|
public class MemUserRelationServiceImpl extends ServiceImpl<MemUserRelationMapper, MemUserRelation> implements IMemUserRelationService {
|
|
@Autowired
|
private IMemUserService userService;
|
@Autowired
|
private IMemUserRelationService userRelationService;
|
|
@Override
|
@Transactional
|
public List<MemUser> getUserInPath(Integer userId) {
|
MemUserRelation relation = getById(userId);
|
String ids = relation.getRelationPath();
|
List<MemUser> memIds = new ArrayList<>();
|
for (String id : ids.split("/")) {
|
if (!StringUtils.isEmpty(id) && !id.equals("1")) {
|
memIds.add(userService.getById(Integer.parseInt(id)));
|
}
|
}
|
return memIds;
|
}
|
|
@Override
|
public List<VoTeamUser> directTeam(Integer userId, List<Integer> gradeList, String beginTime, String endTime) {
|
return baseMapper.directTeam(userId, gradeList, beginTime, endTime);
|
}
|
|
@Override
|
public Integer directTeamCount(Integer userId, List<Integer> gradeList, String beginTime, String endTime) {
|
return baseMapper.directTeamCount(userId, gradeList, beginTime, endTime);
|
}
|
|
@Override
|
public String[] reverseArray(String[] arr) {
|
// 定义一个反序后的数组
|
String[] desArr = new String[arr.length];
|
// 把原数组元素倒序遍历
|
for(int i = 0; i < arr.length; i++) {
|
// 把arr的第i个元素赋值给desArr的最后第i个元素中
|
desArr[arr.length - 1 - i] = arr[i];
|
}
|
// 返回倒序后的数组
|
return desArr;
|
}
|
|
@Override
|
public List<VoUserGradeParent> getUserGradeParentList() {
|
return this.baseMapper.getUserGradeParentList(null);
|
}
|
|
@Override
|
public List<VoUserGradeParent> getUserInDirectTeamByUserGradeParent(Integer userId) {
|
List<VoUserGradeParent> userGradeParentList = this.getUserGradeParentList();
|
|
UserHierarchy hierarchy = new UserHierarchy();
|
hierarchy.addAll(userGradeParentList);
|
|
// 要查找相关实体的用户ID
|
VoUserGradeParent user = hierarchy.getUserById(userId);
|
|
List<VoUserGradeParent> relatedEntities = null;
|
if (user != null) {
|
relatedEntities = hierarchy.findRelatedEntities(user);
|
}
|
return relatedEntities;
|
}
|
|
@Override
|
public List<VoUserGradeParent> getDirectUserGradeParentList(Integer userId, List<Integer> gradeList, Integer isBuyGrade) {
|
return this.baseMapper.getDirectUserGradeParentList(userId, gradeList, isBuyGrade);
|
}
|
|
}
|