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
* @Description:
* @Project: 用户中心
* @CreateDate: Created in 2020-03-11 16:15:31
* @Author: liuke * @version 1.0 */ @Slf4j @Service public class SysHospitalServiceImpl extends SuperServiceImpl implements ISysHospitalService { @Resource private SysDepartmentMapper departmentMapper; @Autowired private SysRoleOrganizationServiceImpl SysRoleOrganizationServiceImpl; /** * 列表 * @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(); } /** * 列表 * @param params * @return */ @Override public PageResult findHospitalList(Map params, SysUser user) { Page page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); SysRoleOrganizationServiceImpl.getRoleOrg(params, user); List list = baseMapper.findHospitalList(page, params); return PageResult.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 findAll(Map params) { params.put("is_del",0); params.put("enabled",1); List sysHospitals = baseMapper.selectByMap(params); return ResultBody.ok().data(sysHospitals).msg("查询成功"); } /** * 根据医院名称模糊查询医院数据列表 * @param hospitalName * @return */ public ResultBody 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 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 columnMap=new HashMap(); columnMap.put("hospital_id",id); columnMap.put("is_del",(boolean)false); columnMap.put("enabled",!enabled); List 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 params) { Long id = MapUtils.getLong(params, "id"); Long departmentId = MapUtils.getLong(params, "departmentId"); //科室数据 SysDepartment sysDepartment=departmentMapper.selectById(departmentId); //医院数据 SysHospital sysHospital = baseMapper.selectById(id); //医院下的所有数据 Map columnMap=new HashMap(); columnMap.put("hospital_id",id); List 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("删除失败"); } }