package com.kidgrow.usercenter.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.kidgrow.common.model.ResultBody;
import com.kidgrow.common.model.SysOrganization;
import com.kidgrow.usercenter.model.SysHospital;
import com.kidgrow.usercenter.service.ISysHospitalService;
import com.kidgrow.usercenter.service.ISysOrganizationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kidgrow.common.model.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.service.impl.SuperServiceImpl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.commons.collections4.MapUtils;
import lombok.extern.slf4j.Slf4j;
import com.kidgrow.usercenter.model.SysDepartment;
import com.kidgrow.usercenter.mapper.SysDepartmentMapper;
import com.kidgrow.usercenter.service.ISysDepartmentService;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
* @Description: 科室表
* @Project: 用户中心
* @CreateDate: Created in 2020-04-02 14:02:50
* @Author: liuke
* @version 1.0
*/
@Slf4j
@Service
public class SysDepartmentServiceImpl extends SuperServiceImpl implements ISysDepartmentService {
@Autowired
private ISysOrganizationService iSysOrganizationService;
@Autowired
private ISysHospitalService iSysHospitalService;
/**
* 列表
* @param params
* @return
*/
@Override
public PageResult findList(Map params){
Page page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
List list = baseMapper.findList(page, params);
return PageResult.builder().data(list).code(0).count(page.getTotal()).build();
}
/**
* 根据SysDepartment对象当做查询条件进行查询
* @param sysDepartment
* @return SysDepartment
*/
@Override
public SysDepartment findByObject(SysDepartment sysDepartment){
return baseMapper.findByObject(sysDepartment);
}
@Override
public ResultBody findAll(Map params) {
return ResultBody.ok().data(baseMapper.selectByMap(params));
}
@Override
public ResultBody findListByHospitalId(Map params) {
//查询组织
Long id = MapUtils.getLong(params, "id");
List sysDepartments=new ArrayList<>();
SysHospital byId = iSysHospitalService.getById(id);
if(byId!=null){
params=new HashMap<>();
params.put("org_parent_id",byId.getOrgId());
List sysOrganizations = iSysOrganizationService.listByMap(params);
if (sysOrganizations.size()>0) {
List collect = sysOrganizations.stream().map(e -> e.getId()).collect(Collectors.toList());
QueryWrapper queryWrapper=new QueryWrapper();
queryWrapper.in("org_id",collect );
sysDepartments= baseMapper.selectList(queryWrapper);
}
}
return ResultBody.ok().data(sysDepartments);
}
}