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.ZfPetNote; import com.ruoyi.mapper.ZfPetNoteMapper; import com.ruoyi.service.ZfPetNoteService; 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 ZfPetNoteServiceImpl extends ServiceImpl implements ZfPetNoteService { @Override public AjaxResult selectPetNoteList(ZfPetNote zfPetNote, Integer pageNum, Integer pageSize) { LambdaQueryWrapper lqw = buildCondition(zfPetNote); lqw.orderByDesc(ZfPetNote::getCreateTime); Page ZfPetNotePage = new Page<>(pageNum,pageSize); Page pageResult = page(ZfPetNotePage, lqw); System.out.println(pageResult); HashMap data = MapUtils.getResult(pageResult); System.out.println(data); return AjaxResult.success(data); } @Override public List selectByCondition(ZfPetNote zfPetNote) { LambdaQueryWrapper lambdaQueryWrapper = buildCondition(zfPetNote); lambdaQueryWrapper.orderByDesc(ZfPetNote::getCreateTime); List list = list(lambdaQueryWrapper); log.info("返回的数据为:{}",list); return list; } @Override public AjaxResult getAllPetNoteByPetId(Integer pageNum,Integer pageSize,String pid,ZfPetNote zfPetNote) { LambdaQueryWrapper lqw = buildCondition(zfPetNote); lqw.eq(ZfPetNote::getPid,pid); lqw.orderByDesc(ZfPetNote::getCreateTime); Page zfPetNotePage = new Page<>(pageNum, pageSize); Page pageResult = page(zfPetNotePage, lqw); HashMap result = MapUtils.getResult(pageResult); return AjaxResult.success(result); } @Override public List getPetNoteByPetId(String pid ) { ZfPetNote zfPetNote = new ZfPetNote(); zfPetNote.setPid(pid); LambdaQueryWrapper lqw = buildCondition(zfPetNote); lqw.eq(ZfPetNote::getPid,pid); lqw.orderByDesc(ZfPetNote::getCreateTime); return list(lqw); } @Override public AjaxResult mySave(ZfPetNote zfPetNote) { //判断是否有重复数据 LambdaQueryWrapper lqw = uniqueCondition(zfPetNote); List list = list(lqw); if(list.size()>0){ throw new RuntimeException("请勿新增重复数据"); } if(save(zfPetNote)){ return AjaxResult.success(); }else { return AjaxResult.error(); } } @Override public List selectByIds(Long[] ids) { List list = new ArrayList<>(); if(ids.length!=0) list = listByIds(Arrays.asList(ids)); else list = list(); return list; } private LambdaQueryWrapper uniqueCondition(ZfPetNote zfPetNote) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(StringUtils.isNotEmpty(zfPetNote.getTitle()),ZfPetNote::getTitle,zfPetNote.getTitle()); lqw.eq(zfPetNote.getRemindTime()!=null,ZfPetNote::getRemindTime,zfPetNote.getRemindTime()); lqw.eq(zfPetNote.getHappenTime()!=null,ZfPetNote::getHappenTime,zfPetNote.getHappenTime()); lqw.eq(StringUtils.isNotEmpty(zfPetNote.getRemark()),ZfPetNote::getRemark,zfPetNote.getRemark()); return lqw; } private LambdaQueryWrapper buildCondition(ZfPetNote zfPetNote) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.like(StringUtils.isNotEmpty(zfPetNote.getTitle()),ZfPetNote::getTitle,zfPetNote.getTitle()); lqw.like(zfPetNote.getRemindTime()!=null,ZfPetNote::getRemindTime,zfPetNote.getRemindTime()); lqw.like(StringUtils.isNotEmpty(zfPetNote.getRemark()),ZfPetNote::getRemark,zfPetNote.getRemark()); lqw.eq(zfPetNote.getHappenTime()!=null,ZfPetNote::getHappenTime,zfPetNote.getHappenTime()); lqw.eq(zfPetNote.getRemindTime()!=null,ZfPetNote::getRemindTime,zfPetNote.getRemindTime()); lqw.between(zfPetNote.getHappenStartTime() != null && zfPetNote.getHappenEndTime() != null, ZfPetNote::getHappenTime, zfPetNote.getHappenStartTime(), zfPetNote.getHappenEndTime()); lqw.between(zfPetNote.getRemindStartTime() != null && zfPetNote.getRemindEndTime() != null, ZfPetNote::getRemindTime, zfPetNote.getRemindStartTime(), zfPetNote.getRemindEndTime()); return lqw; } }