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.poi.ExcelUtil; import com.ruoyi.domain.ZInfoUser; import com.ruoyi.domain.ZfEquipment; import com.ruoyi.domain.ZfEquipment; import com.ruoyi.domain.ZfProperty; import com.ruoyi.mapper.ZfEquipmentMapper; import com.ruoyi.service.ZInfoUserService; import com.ruoyi.service.ZfEquipmentService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; /** *

* 服务实现类 *

* * @author ojq * @since 2023-03-12 */ @Service @Slf4j public class ZfEquipmentServiceImpl extends ServiceImpl implements ZfEquipmentService { @Resource ZInfoUserService zInfoUserService; @Resource ZfEquipmentService zfEquipmentService; @Override public List selectByCondition(ZfEquipment zfEquipment) { String familyIds = listFamilyIds(); LambdaQueryWrapper lambdaQueryWrapper = buildCondition(zfEquipment, familyIds); List list = list(lambdaQueryWrapper); log.info("返回的数据为:{}", list); return list; } @Override public int addEquipment(ZfEquipment zfEquipment) { String familyIds = listFamilyIds(); boolean flag = false;//判断当前用户的id是否有权加入当前家庭id的对象 if (familyIds.contains(",")) { String[] familyList = familyIds.split(","); for (String familyId : familyList) { if (familyId.equals(zfEquipment.getFamilyId())) { flag = true; } } } else { if (zfEquipment.getFamilyId().equals(familyIds)) { flag = true; } } if (flag) { boolean save = save(zfEquipment); return save ? 1 : 0; } else { throw new RuntimeException("你没有操作该家庭号为" + zfEquipment.getFamilyId() + "数据的权限"); } } @Override @Transactional public AjaxResult importExcel(MultipartFile file) { ExcelUtil util = new ExcelUtil<>(ZfEquipment.class); List equipmentList = null; try { equipmentList = util.importExcel(file.getInputStream()); } catch (Exception e) { throw new RuntimeException(e); } log.info("资产列表为:{}", equipmentList); for (ZfEquipment zfEquipment : equipmentList) { zfEquipmentService.addEquipment(zfEquipment); } return AjaxResult.success("导入数据成功"); } private LambdaQueryWrapper buildCondition(ZfEquipment zfEquipment) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.like(StringUtils.isNotEmpty(zfEquipment.getName()), ZfEquipment::getName, zfEquipment.getName()); lqw.like(StringUtils.isNotEmpty(zfEquipment.getBuyer()), ZfEquipment::getBuyer, zfEquipment.getBuyer()); lqw.like(StringUtils.isNotEmpty(zfEquipment.getContent()), ZfEquipment::getContent, zfEquipment.getContent()); lqw.like(StringUtils.isNotEmpty(zfEquipment.getLocation()), ZfEquipment::getLocation, zfEquipment.getLocation()); lqw.like(StringUtils.isNotEmpty(zfEquipment.getRemark()), ZfEquipment::getRemark, zfEquipment.getRemark()); lqw.like(zfEquipment.getCreateDate() != null, ZfEquipment::getCreateDate, zfEquipment.getCreateDate()); return lqw; } private LambdaQueryWrapper buildCondition(ZfEquipment zfEquipment, String familyIds) { LambdaQueryWrapper lqw = buildCondition(zfEquipment); if (familyIds.contains(",")) { String[] familyList = familyIds.split(","); for (String familyId : familyList) { lqw.or().eq(ZfEquipment::getFamilyId, familyId); } } else { lqw.eq(ZfEquipment::getFamilyId, familyIds); } return lqw; } private String listFamilyIds() { SysUser user = SecurityUtils.getLoginUser().getUser(); Long userId = user.getUserId(); LambdaQueryWrapper zInfoUserLambdaQueryWrapper = new LambdaQueryWrapper<>(); zInfoUserLambdaQueryWrapper.eq(ZInfoUser::getUserId, userId); ZInfoUser zInfoUser = zInfoUserService.getOne(zInfoUserLambdaQueryWrapper); return zInfoUser.getFamilyId(); } @Override public AjaxResult selectEquipmentList(ZfEquipment zfEquipment, Integer pageNum, Integer pageSize) { String familyIds = listFamilyIds(); LambdaQueryWrapper lqw = buildCondition(zfEquipment, familyIds); Page zfEquipmentPage = new Page<>(pageNum, pageSize); Page pageResult = page(zfEquipmentPage, lqw); HashMap data = MapUtils.getResult(pageResult); return AjaxResult.success(data); } }