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.ZHonor; import com.ruoyi.domain.ZInfoUser; import com.ruoyi.domain.ZSecret; import com.ruoyi.mapper.ZHonorMapper; import com.ruoyi.service.ZHonorService; import com.ruoyi.service.ZInfoUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; /** *

* 证件、荣誉、资质表 服务实现类 *

* * @author ojq * @since 2023-03-14 */ @Service public class ZHonorServiceImpl extends ServiceImpl implements ZHonorService { @Autowired ZHonorServiceImpl zHonorService; @Autowired ZInfoUserService zInfoUserService; @Resource ZHonorMapper zHonorMapper; private LambdaQueryWrapper uniqueCondition(ZHonor zHonor){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(StringUtils.isNotEmpty(zHonor.getName()),ZHonor::getName,zHonor.getName()) .eq(zHonor.getType()!=null,ZHonor::getType,zHonor.getType()) .eq(StringUtils.isNotEmpty(zHonor.getIdNo()),ZHonor::getIdNo,zHonor.getIdNo()) .eq(StringUtils.isNotEmpty(zHonor.getGrade()),ZHonor::getGrade,zHonor.getGrade()) .eq(zHonor.getValidityDate()!=null,ZHonor::getValidityDate,zHonor.getValidityDate()) .eq(zHonor.getGetDate()!=null,ZHonor::getGetDate,zHonor.getGetDate()) .eq(StringUtils.isNotEmpty(zHonor.getLocation()),ZHonor::getLocation,zHonor.getLocation()) .eq(StringUtils.isNotEmpty(zHonor.getRemark()),ZHonor::getRemark,zHonor.getRemark()) .eq(zHonor.getUserId()!=null,ZHonor::getUserId,zHonor.getUserId()); return lqw; } private LambdaQueryWrapper buildCondition(ZHonor zHonor,Long userId){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(StringUtils.isNotEmpty(zHonor.getName()),ZHonor::getName,zHonor.getName()) .eq(ZHonor::getUserId,userId) .like(zHonor.getType()!=null,ZHonor::getType,zHonor.getType()) .like(StringUtils.isNotEmpty(zHonor.getIdNo()),ZHonor::getIdNo,zHonor.getIdNo()) .like(StringUtils.isNotEmpty(zHonor.getGrade()),ZHonor::getGrade,zHonor.getGrade()) .like(StringUtils.isNotEmpty(zHonor.getLocation()),ZHonor::getLocation,zHonor.getLocation()) .like(StringUtils.isNotEmpty(zHonor.getRemark()),ZHonor::getRemark,zHonor.getRemark()) .orderByDesc(ZHonor::getCreateTime); return lqw; } private LambdaQueryWrapper buildConditionSec(ZHonor zHonor,List userIds){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.in(ZHonor::getUserId, userIds) .eq(StringUtils.isNotEmpty(zHonor.getName()),ZHonor::getName,zHonor.getName()) .like(zHonor.getType()!=null,ZHonor::getType,zHonor.getType()) .like(StringUtils.isNotEmpty(zHonor.getIdNo()),ZHonor::getIdNo,zHonor.getIdNo()) .like(StringUtils.isNotEmpty(zHonor.getGrade()),ZHonor::getGrade,zHonor.getGrade()) .like(StringUtils.isNotEmpty(zHonor.getLocation()),ZHonor::getLocation,zHonor.getLocation()) .like(StringUtils.isNotEmpty(zHonor.getRemark()),ZHonor::getRemark,zHonor.getRemark()) .orderByDesc(ZHonor::getCreateTime); return lqw; } /** * 分页查找 */ @Override public AjaxResult selectDataList(ZHonor zHonor,Integer pageNum,Integer pageSize) { SysUser user = SecurityUtils.getLoginUser().getUser(); Long userId = user.getUserId(); //根据userId查询到infouser的uaid ZInfoUser zInfoUser = zInfoUserService.getInfoBysysId(userId); //拿到所有的sysid List fms = zInfoUserService.findByUaidToFaid(zInfoUser.getUaid()).stream().map(ZInfoUser::getSysId).collect(Collectors.toList()); LambdaQueryWrapper lqw; if(!fms.isEmpty()) lqw = buildConditionSec(zHonor, fms); else lqw = buildCondition(zHonor, userId); // LambdaQueryWrapper lqw = buildCondition(zHonor, userId); Page pageBean = new Page<>(pageNum, pageSize); Page pageResult = page(pageBean, lqw); List beanRecords = pageResult.getRecords();//得到查询出来的数据 HashMap data = MapUtils.getResult(pageResult, beanRecords); return AjaxResult.success(data); } @Override public List selectCondition(ZHonor zHonor) { SysUser user = SecurityUtils.getLoginUser().getUser(); Long userId = user.getUserId(); LambdaQueryWrapper lqw = buildCondition(zHonor, userId); return list(lqw); } @Override public List selectByIds(Long[] ids) { List list = new ArrayList<>(); if(!(ids==null||ids.length==0)) list = listByIds(Arrays.asList(ids)); else list = list(); return list; } @Override public AjaxResult listType() { List result = zHonorMapper.listType(); return AjaxResult.success(result); } @Override public AjaxResult mySave(ZHonor zHonor) { SysUser user = SecurityUtils.getLoginUser().getUser(); Long userId = user.getUserId(); zHonor.setUserId(userId); //检查是否有重复数据插入 LambdaQueryWrapper lqw = uniqueCondition(zHonor); List list = list(lqw); if(list.size()>0){ throw new RuntimeException("请勿新增重复数据"); } if (save(zHonor)) { return AjaxResult.success(); }else { return AjaxResult.error(); } } @Override @Transactional public AjaxResult importExcel(MultipartFile file) { ExcelUtil util = new ExcelUtil<>(ZHonor.class); List dataList = null; try { dataList = util.importExcel(file.getInputStream()); } catch (Exception e) { throw new RuntimeException("没有按照规则导入数据"); } assert dataList != null; for (ZHonor zHonor : dataList) { zHonorService.mySave(zHonor); } return AjaxResult.success(); } }