package com.ruoyi.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.MapUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.domain.ZfDoctor; import com.ruoyi.domain.ZfEquipment; import com.ruoyi.domain.ZfPet; import com.ruoyi.mapper.ZfDoctorMapper; import com.ruoyi.service.ZfDoctorService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; /** *

* 服务实现类 *

* * @author ojq * @since 2023-03-12 */ @Service @Slf4j public class ZfDoctorServiceImpl extends ServiceImpl implements ZfDoctorService { @Override public AjaxResult selectDoctorList(ZfDoctor zfDoctor, Integer pageNum, Integer pageSize) { LambdaQueryWrapper lqw = buildCondition(zfDoctor); lqw.orderByDesc(ZfDoctor::getCreateTime); Page ZfDoctorPage = new Page<>(pageNum, pageSize); Page pageResult = page(ZfDoctorPage, lqw); HashMap data = MapUtils.getResult(pageResult); return AjaxResult.success(data); } @Override public List selectByCondition(ZfDoctor zfDoctor) { LambdaQueryWrapper lambdaQueryWrapper = buildCondition(zfDoctor); lambdaQueryWrapper.orderByDesc(ZfDoctor::getCreateTime); List list = list(lambdaQueryWrapper); log.info("返回的数据为:{}", list); return list; } @Override public List selectByIds(Long[] ids) { List list = new ArrayList<>(); if (ids.length != 0) list = listByIds(Arrays.asList(ids)); else list = list(); return list; } @Override public AjaxResult mySave(ZfDoctor zfDoctor) { //判断是否有重复数据 LambdaQueryWrapper lqw = uniqueCondition(zfDoctor); List list = list(lqw); if (list.size() > 0) { throw new RuntimeException("请勿新增重复数据"); } if (save(zfDoctor)) { return AjaxResult.success(); } else { return AjaxResult.error(); } } private LambdaQueryWrapper uniqueCondition(ZfDoctor zfDoctor) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(StringUtils.isNotEmpty(zfDoctor.getType()), ZfDoctor::getType, zfDoctor.getType()); lqw.eq(StringUtils.isNotEmpty(zfDoctor.getSymptom()), ZfDoctor::getSymptom, zfDoctor.getSymptom()); lqw.eq(StringUtils.isNotEmpty(zfDoctor.getDuration()), ZfDoctor::getDuration, zfDoctor.getDuration()); lqw.eq(StringUtils.isNotEmpty(zfDoctor.getCmedical()), ZfDoctor::getCmedical, zfDoctor.getCmedical()); lqw.eq(StringUtils.isNotEmpty(zfDoctor.getWmedical()), ZfDoctor::getWmedical, zfDoctor.getWmedical()); lqw.eq(StringUtils.isNotEmpty(zfDoctor.getEffect()), ZfDoctor::getEffect, zfDoctor.getEffect()); lqw.eq(StringUtils.isNotEmpty(zfDoctor.getSuitable()), ZfDoctor::getSuitable, zfDoctor.getSuitable()); lqw.eq(StringUtils.isNotEmpty(zfDoctor.getRemark()), ZfDoctor::getRemark, zfDoctor.getRemark()); return lqw; } private LambdaQueryWrapper buildCondition(ZfDoctor zfDoctor) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.like(StringUtils.isNotEmpty(zfDoctor.getType()), ZfDoctor::getType, zfDoctor.getType()) .like(StringUtils.isNotEmpty(zfDoctor.getSymptom()), ZfDoctor::getSymptom, zfDoctor.getSymptom()) .like(StringUtils.isNotEmpty(zfDoctor.getDuration()), ZfDoctor::getDuration, zfDoctor.getDuration()) .like(StringUtils.isNotEmpty(zfDoctor.getEffect()), ZfDoctor::getEffect, zfDoctor.getEffect()) .like(StringUtils.isNotEmpty(zfDoctor.getSuitable()), ZfDoctor::getSuitable, zfDoctor.getSuitable()) .like(StringUtils.isNotEmpty(zfDoctor.getRemark()), ZfDoctor::getRemark, zfDoctor.getRemark()); if (StringUtils.isNotEmpty(zfDoctor.getPrescription())){ lqw.and(wrapper -> { wrapper.like(StringUtils.isNotEmpty(zfDoctor.getPrescription()),ZfDoctor::getWmedical,zfDoctor.getPrescription()) .or() .like(StringUtils.isNotEmpty(zfDoctor.getPrescription()),ZfDoctor::getCmedical,zfDoctor.getPrescription()); }); } return lqw; } }