package com.kidgrow.usercenter.service.impl;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.kidgrow.common.model.PageResult;
|
import com.kidgrow.common.model.ResultBody;
|
import com.kidgrow.common.model.SysUser;
|
import com.kidgrow.common.service.impl.SuperServiceImpl;
|
import com.kidgrow.usercenter.mapper.SysDepartmentMapper;
|
import com.kidgrow.usercenter.mapper.SysHospitalMapper;
|
import com.kidgrow.usercenter.model.SysDepartment;
|
import com.kidgrow.usercenter.model.SysHospital;
|
import com.kidgrow.usercenter.service.ISysHospitalService;
|
import com.kidgrow.usercenter.vo.HospitalListVo;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.collections4.MapUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.annotation.Resource;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
|
* @Description: <br>
|
* @Project: 用户中心<br>
|
* @CreateDate: Created in 2020-03-11 16:15:31 <br>
|
* @Author: <a href="4345453@kidgrow.com">liuke</a>
|
* @version 1.0
|
*/
|
@Slf4j
|
@Service
|
public class SysHospitalServiceImpl extends SuperServiceImpl<SysHospitalMapper, SysHospital> implements ISysHospitalService {
|
@Resource
|
private SysDepartmentMapper departmentMapper;
|
@Autowired
|
private SysRoleOrganizationServiceImpl SysRoleOrganizationServiceImpl;
|
/**
|
* 列表
|
* @param params
|
* @return
|
*/
|
@Override
|
public PageResult<SysHospital> findList(Map<String, Object> params){
|
Page<SysHospital> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
|
|
List<SysHospital> list = baseMapper.findList(page, params);
|
return PageResult.<SysHospital>builder().data(list).code(0).count(page.getTotal()).build();
|
}
|
/**
|
* 列表
|
* @param params
|
* @return
|
*/
|
@Override
|
public PageResult<HospitalListVo> findHospitalList(Map<String, Object> params, SysUser user) {
|
Page<HospitalListVo> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
|
SysRoleOrganizationServiceImpl.getRoleOrg(params, user);
|
List<HospitalListVo> list = baseMapper.findHospitalList(page, params);
|
return PageResult.<HospitalListVo>builder().data(list).code(0).count(page.getTotal()).build();
|
}
|
|
/**
|
* 根据SysHospital对象当做查询条件进行查询
|
* @param sysHospital
|
* @return SysHospital
|
*/
|
@Override
|
public SysHospital findByObject(SysHospital sysHospital){
|
return baseMapper.findByObject(sysHospital);
|
}
|
|
@Override
|
public ResultBody<SysHospital> findAll(Map<String, Object> params) {
|
params.put("is_del",0);
|
params.put("enabled",1);
|
List<SysHospital> sysHospitals = baseMapper.selectByMap(params);
|
return ResultBody.ok().data(sysHospitals).msg("查询成功");
|
}
|
/**
|
* 根据医院名称模糊查询医院数据列表
|
* @param hospitalName
|
* @return
|
*/
|
public ResultBody<SysHospital> findByName(String hospitalName){
|
return ResultBody.ok().data(baseMapper.findByName(hospitalName)).msg("查询成功");
|
}
|
/**
|
* 根据id和启用禁用值更新数据
|
* @param params
|
* @return ResultBody
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
@Override
|
public ResultBody updateEnabled(Map<String, Object> params) {
|
Long id = MapUtils.getLong(params, "id");
|
Long departmentId = MapUtils.getLong(params, "departmentId");
|
Boolean enabled = MapUtils.getBoolean(params, "enabled");
|
//科室数据
|
SysDepartment sysDepartment=departmentMapper.selectById(departmentId);
|
//医院数据
|
SysHospital sysHospital = baseMapper.selectById(id);
|
//医院下的所有数据
|
Map<String,Object> columnMap=new HashMap<String,Object>();
|
columnMap.put("hospital_id",id);
|
columnMap.put("is_del",(boolean)false);
|
columnMap.put("enabled",!enabled);
|
List<SysDepartment> sysDepartmentList=departmentMapper.selectByMap(columnMap);
|
if (sysHospital == null) {
|
return ResultBody.failed("医院数据不存在!");
|
}
|
if (sysDepartment == null) {
|
return ResultBody.failed("科室数据不存在!");
|
}
|
//如果这个医院下有多个科室,禁用只对当前科室有效,否则也要禁用医院
|
if(sysDepartmentList.size()==1)
|
{
|
sysHospital.setEnabled(enabled);
|
int i =baseMapper.updateById(sysHospital);
|
//Log.info("修改医院状态为:{}",enabled+" "+i);
|
}
|
sysDepartment.setEnabled(enabled);
|
int j=departmentMapper.updateById(sysDepartment);
|
return (j > 0) ? ResultBody.ok().data(sysHospital).msg("更新成功") : ResultBody.failed("更新失败");
|
}
|
|
/**
|
* 删除医院科室信息
|
* @param params
|
* @return
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
@Override
|
public ResultBody delete(Map<String, Object> params) {
|
Long id = MapUtils.getLong(params, "id");
|
Long departmentId = MapUtils.getLong(params, "departmentId");
|
//科室数据
|
SysDepartment sysDepartment=departmentMapper.selectById(departmentId);
|
//医院数据
|
SysHospital sysHospital = baseMapper.selectById(id);
|
//医院下的所有数据
|
Map<String,Object> columnMap=new HashMap<String,Object>();
|
columnMap.put("hospital_id",id);
|
List<SysDepartment> sysDepartmentList=departmentMapper.selectByMap(columnMap);
|
if (sysHospital == null) {
|
return ResultBody.failed("医院数据不存在!");
|
}
|
if (sysDepartment == null) {
|
return ResultBody.failed("科室数据不存在!");
|
}
|
//如果这个医院下有多个科室,禁用只对当前科室有效,否则也要禁用医院
|
if(sysDepartmentList.size()==1)
|
{
|
sysHospital.setIsDel(true);
|
int i =baseMapper.updateById(sysHospital);
|
//Log.info("修改医院状态为:{}",enabled+" "+i);
|
}
|
sysDepartment.setIsDel(true);
|
int j=departmentMapper.updateById(sysDepartment);
|
return (j > 0) ? ResultBody.ok().data(sysHospital).msg("删除成功") : ResultBody.failed("删除失败");
|
}
|
}
|