package com.ydtech.modules.admin.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ydtech.constants.enums.dict.organization.OrganizationSource; import com.ydtech.core.page.HttpResult; import com.ydtech.modules.admin.model.SysDept; import com.ydtech.modules.admin.model.SysUser; import com.ydtech.modules.admin.model.SysUserInfo; import com.ydtech.modules.admin.model.SysUserTrack; import com.ydtech.modules.admin.model.dto.SysUserTeamDto; import com.ydtech.modules.admin.model.dto.SysUserTeamInfoDto; import com.ydtech.modules.admin.model.vo.AppCustomerManagementQueryVo; import com.ydtech.modules.admin.service.*; import com.ydtech.modules.base.controller.BaseController; import com.ydtech.modules.esm.model.EsmUserReferrer; import com.ydtech.modules.esm.service.EsmUserReferrerService; import com.ydtech.modules.order.entity.BasePageResult; import com.ydtech.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; @Service @RequiredArgsConstructor public class AppCustomerManagementImpl implements AppCustomerManagementService { private final SysUserService sysUserService; private final SysDeptService sysDeptService; private final EsmUserReferrerService esmUserReferrerService; private final SysUserInfoService sysUserInfoService; private final SysUserTrackService sysUserTrackService; @Override public HttpResult> authenticationQuery(AppCustomerManagementQueryVo managementQueryVo) { String deptId = BaseController.getDeptId(); SysDept dept = sysDeptService.getById(deptId); Page page = new Page<>(managementQueryVo.getPageNum(), managementQueryVo.getPageSize()); String userId = BaseController.getUserId(); if (OrganizationSource.OS_1.getCode().equals(dept.getManagementSource())) { boolean notEmpty = StringUtils.isNotEmpty(managementQueryVo.getCriteria()); Page sysUserPage = sysUserService.lambdaQuery() .eq(SysUser::getOperatorCode, userId) .eq(StringUtils.isNotEmpty(managementQueryVo.getAuthenticationStatus()), SysUser::getStatus, managementQueryVo.getAuthenticationStatus()) .and(notEmpty, x -> x.eq(SysUser::getMobile, managementQueryVo.getCriteria()) .or().eq(SysUser::getId, managementQueryVo.getCriteria()) .or().eq(SysUser::getName, managementQueryVo.getCriteria())) .page(page); List sysUserTeamDtos = sysUserPage.getRecords().stream().map(SysUserTeamDto::new).collect(Collectors.toList()); BasePageResult sysUserBasePageResult = new BasePageResult<>(managementQueryVo.getPageNum(), managementQueryVo.getPageSize(), sysUserPage.getTotal(), sysUserPage.getPages() , sysUserTeamDtos); return HttpResult.ok(sysUserBasePageResult); } BasePageResult sysUserBasePageResult = esmUserReferrerService.getTeamUser(managementQueryVo, userId); return HttpResult.ok(sysUserBasePageResult); } @Override public HttpResult getUserInfo(String userId) { // 人员信息 SysUser sysUser = sysUserService.getById(userId); // 团队信息 SysDept dept = sysDeptService.getById(sysUser.getDeptId()); // 机构信息 SysDept organization = sysDeptService.getById(dept.getParentId()); SysUserInfo sysUserInfo = sysUserInfoService.getById(userId); SysUserTeamInfoDto sysUserTeamInfoDto = new SysUserTeamInfoDto(sysUser, dept, organization, sysUserInfo); SysUserTrack sysUserTrack = sysUserTrackService.getLastTime(userId); if (sysUserTrack != null) { sysUserTeamInfoDto.setApproveTime(sysUserTrack.getApproveTime()); sysUserTeamInfoDto.setApproveBy(sysUserTrack.getApproveBy()); } EsmUserReferrer esmUserReferrer = esmUserReferrerService.getById(userId); // 推荐人信息 if (esmUserReferrer != null) { sysUserTeamInfoDto.setReferrersId(esmUserReferrer.getReferrerId()); sysUserTeamInfoDto.setReferrersName(esmUserReferrer.getReferrerName()); } return HttpResult.ok(sysUserTeamInfoDto); } }