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.core.domain.entity.SysUser; import com.ruoyi.common.utils.MapUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.domain.ZInfoUser; import com.ruoyi.domain.ZfMaster; import com.ruoyi.domain.ZfEquipment; import com.ruoyi.domain.ZfPet; import com.ruoyi.domain.ZfProperty; import com.ruoyi.mapper.ZfPetMapper; import com.ruoyi.service.ZInfoUserService; import com.ruoyi.service.ZfMasterService; import com.ruoyi.service.ZfPetService; import lombok.extern.slf4j.Slf4j; import org.apache.poi.util.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; 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 ZfPetServiceImpl extends ServiceImpl implements ZfPetService { @Autowired ZInfoUserService zInfoUserService; @Autowired ZfMasterService zfMasterService; @Autowired ZfPetService zfPetService; @Override public AjaxResult selectPetList(ZfPet zfPet, Integer pageNum, Integer pageSize) { LambdaQueryWrapper lqw = buildCondition(zfPet); lqw.orderByDesc(ZfPet::getCreateTime); Page ZfPetPage = new Page<>(pageNum,pageSize); Page pageResult = page(ZfPetPage, lqw); HashMap data = MapUtils.getResult(pageResult); return AjaxResult.success(data); } @Override public List selectByCondition(ZfPet zfPet) { LambdaQueryWrapper lambdaQueryWrapper = buildCondition(zfPet); lambdaQueryWrapper.orderByDesc(ZfPet::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 @Transactional public AjaxResult mySave(ZfPet zfPet) { SysUser user = SecurityUtils.getLoginUser().getUser(); Long userId = user.getUserId(); String pid = IdUtils.fastSimpleUUID(); zfPet.setId(pid); //判断是否有重复数据 LambdaQueryWrapper lqw = uniqueCondition(zfPet); List list = list(lqw); if(list.size()>0){ throw new RuntimeException("请勿新增重复数据"); } //先查找本人的数据 LambdaQueryWrapper zInfoLqw = new LambdaQueryWrapper<>(); zInfoLqw.eq(ZInfoUser::getUserId,userId); ZInfoUser master = zInfoUserService.getOne(zInfoLqw); ZfMaster zfMaster = new ZfMaster(); zfMaster.setPetId(zfPet.getId()); zfMaster.setName(master.getNickName()); zfMaster.setCertificateType("身份证"); zfMaster.setCertificateNo(master.getIdNo()); zfMaster.setPhoneNo(master.getPhoneNumber()); zfMaster.setAddress(master.getAlwaysAddress()); zfMasterService.save(zfMaster); zfPetService.save(zfPet); return AjaxResult.success(); } private LambdaQueryWrapper uniqueCondition(ZfPet zfPet) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(StringUtils.isNotEmpty(zfPet.getIdNum()),ZfPet::getIdNum,zfPet.getIdNum()); lqw.eq(StringUtils.isNotEmpty(zfPet.getSecurityCode()),ZfPet::getSecurityCode,zfPet.getSecurityCode()); lqw.eq(StringUtils.isNotEmpty(zfPet.getType()),ZfPet::getType,zfPet.getType()); lqw.eq(StringUtils.isNotEmpty(zfPet.getName()),ZfPet::getName,zfPet.getName()); lqw.eq(zfPet.getBirth()!=null,ZfPet::getBirth,zfPet.getBirth()); lqw.eq(zfPet.getSex()!=null,ZfPet::getSex,zfPet.getSex()); lqw.eq(StringUtils.isNotEmpty(zfPet.getColor()),ZfPet::getColor,zfPet.getColor()); lqw.eq(StringUtils.isNotEmpty(zfPet.getProperties()),ZfPet::getProperties,zfPet.getProperties()); lqw.eq(StringUtils.isNotEmpty(zfPet.getEatHabit()),ZfPet::getEatHabit,zfPet.getEatHabit()); lqw.eq(StringUtils.isNotEmpty(zfPet.getLifeHabit()),ZfPet::getLifeHabit,zfPet.getLifeHabit()); lqw.eq(StringUtils.isNotEmpty(zfPet.getAddress()),ZfPet::getAddress,zfPet.getAddress()); lqw.eq(StringUtils.isNotEmpty(zfPet.getDialect()),ZfPet::getDialect,zfPet.getDialect()); lqw.eq(StringUtils.isNotEmpty(zfPet.getDisEatHabit()),ZfPet::getDisEatHabit,zfPet.getDisEatHabit()); lqw.eq(StringUtils.isNotEmpty(zfPet.getDisLifeHabit()),ZfPet::getDisLifeHabit,zfPet.getDisLifeHabit()); return lqw; } private LambdaQueryWrapper buildCondition(ZfPet zfPet) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.like(StringUtils.isNotEmpty(zfPet.getIdNum()),ZfPet::getIdNum,zfPet.getIdNum()); lqw.like(StringUtils.isNotEmpty(zfPet.getSecurityCode()),ZfPet::getSecurityCode,zfPet.getSecurityCode()); lqw.like(StringUtils.isNotEmpty(zfPet.getType()),ZfPet::getType,zfPet.getType()); lqw.like(StringUtils.isNotEmpty(zfPet.getName()),ZfPet::getName,zfPet.getName()); lqw.like(zfPet.getBirth()!=null,ZfPet::getBirth,zfPet.getBirth()); lqw.like(zfPet.getSex()!=null,ZfPet::getSex,zfPet.getSex()); lqw.like(StringUtils.isNotEmpty(zfPet.getColor()),ZfPet::getColor,zfPet.getColor()); lqw.like(StringUtils.isNotEmpty(zfPet.getProperties()),ZfPet::getProperties,zfPet.getProperties()); lqw.like(StringUtils.isNotEmpty(zfPet.getEatHabit()),ZfPet::getEatHabit,zfPet.getEatHabit()); lqw.like(StringUtils.isNotEmpty(zfPet.getLifeHabit()),ZfPet::getLifeHabit,zfPet.getLifeHabit()); lqw.like(StringUtils.isNotEmpty(zfPet.getAddress()),ZfPet::getAddress,zfPet.getAddress()); lqw.like(StringUtils.isNotEmpty(zfPet.getDialect()),ZfPet::getDialect,zfPet.getDialect()); lqw.like(StringUtils.isNotEmpty(zfPet.getDisEatHabit()),ZfPet::getDisEatHabit,zfPet.getDisEatHabit()); lqw.like(StringUtils.isNotEmpty(zfPet.getDisLifeHabit()),ZfPet::getDisLifeHabit,zfPet.getDisLifeHabit()); return lqw; } }