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.EsModel; 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.domain.*; import com.ruoyi.mapper.ZfShareMapper; import com.ruoyi.service.*; import com.ruoyi.service.ZIdeaShareService; import org.elasticsearch.action.delete.DeleteRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; @Service public class ZIdeaShareServiceImpl extends ServiceImpl implements ZIdeaShareService { @Resource ZIdeaService zIdeaService; @Resource private ZfShareMapper zfShareMapper; @Resource private ZInfoUserService zInfoUserService; @Resource private RestHighLevelClient restHighLevelClient; @Resource EsService esService; private LambdaQueryWrapper uniqueCondition(ZfShare zfShare) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(StringUtils.isNotEmpty(String.valueOf(zfShare.getShareId())), ZfShare::getShareId, zfShare.getShareId()); lqw.eq(StringUtils.isNotEmpty(String.valueOf(zfShare.getShareContent())), ZfShare::getShareContent, zfShare.getShareContent()); lqw.eq(StringUtils.isNotEmpty(String.valueOf(zfShare.getSysMenuId())), ZfShare::getSysMenuId, zfShare.getSysMenuId()); return lqw; } @Override public List getAuthority() { SysUser user = SecurityUtils.getLoginUser().getUser(); Long userId = user.getUserId(); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(ZfShare::getShareId,userId); return list(lqw); } public Long getUserId(){ ZInfoUser myself = zInfoUserService.getMyself(); return myself.getUserId(); } public void addData(ZfShare za) { LambdaQueryWrapper lqw = uniqueCondition(za); List list = list(lqw); if(list.size()>0){ throw new RuntimeException("请勿分享重复数据"); } else { save(za); } } @Override public AjaxResult saveZa(ShareMore shareMore) { Long [] shareIds = shareMore.getShareIds(); Long [] shareContents = shareMore.getShareContents(); for (Long shareId : shareIds) { for (Long shareContent : shareContents) { ZfShare za = new ZfShare(); za.setUserId(getUserId()); za.setShareContent(shareContent); za.setShareId(shareId); za.setSysMenuId(2027L); addData(za); } } // Long [] // if(bl) return AjaxResult.success("分享成功!"); } @Override public AjaxResult listByFidAid(ShareMore shareMore, Integer pageNo, Integer pageSize) { Long [] shareIds = shareMore.getShareIds(); List beanRecord3 = new ArrayList<>(); for (Long shareId : shareIds) { { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(ZfShare::getShareId,shareId) .eq(ZfShare::getSysMenuId,shareMore.getSysMenuId()) .eq(ZfShare::getUserId, getUserId()); List beanRecords = list(lqw); for (ZfShare beanRecord : beanRecords ) { beanRecord3.add(zIdeaService.getById(beanRecord.getShareContent())); } } } List record = beanRecord3.stream().skip((pageNo-1)*pageSize).limit(pageSize).collect(Collectors.toList()); int totalPage = (beanRecord3.size() -1) / pageSize +1; Page zIdeaPage = new Page<>(pageNo, pageSize,totalPage); HashMap data = MapUtils.getShareResult(zIdeaPage, record,beanRecord3.size()); return AjaxResult.success(data); } @Override public AjaxResult deleteZa(ShareMore shareMore) { Long [] shareIds = shareMore.getShareIds(); Long [] shareContents = shareMore.getShareContents(); for(Long shareId : shareIds) for(Long shareContent: shareContents) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(ZfShare::getShareId,shareId) .eq(ZfShare::getShareContent, shareContent) .eq(ZfShare::getSysMenuId, shareMore.getSysMenuId()) .eq(ZfShare::getUserId, getUserId()); remove(lqw); // addData(za); } return AjaxResult.success("数据收回成功!"); } @Override public AjaxResult listByUserId() { HashMap> bs = new HashMap<>(); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(ZfShare::getShareId,getUserId()); lqw.eq(ZfShare::getSysMenuId,2027L); List beanRecords = list(lqw); List b1 = new ArrayList<>(); for (ZfShare beanRecord : beanRecords ) { b1.add(zIdeaService.getById(beanRecord.getShareContent())); bs.put(beanRecord.getUserId(),b1); } // log.info("从数据库中查到的为:{}", bs); return AjaxResult.success(bs); } @Override public AjaxResult listUserId(Integer pageNo, Integer pageSize) { List bs = new ArrayList<>(); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(ZfShare::getShareId,getUserId()); lqw.eq(ZfShare::getSysMenuId,2027L); List beanRecords = list(lqw); for (ZfShare beanRecord : beanRecords ) { ZIdea bs2 = zIdeaService.getById(beanRecord.getShareContent()); bs2.setShareId(beanRecord.getUserId().intValue()); bs.add(bs2); } // log.info("从数据库中查到的为:{}", bs); List record = bs.stream().skip((pageNo-1)*pageSize).limit(pageSize).collect(Collectors.toList()); int totalPage = (bs.size() -1) / pageSize +1; Page zIdeaPage = new Page<>(pageNo, pageSize,totalPage); HashMap data = MapUtils.getShareResult(zIdeaPage, record,bs.size()); return AjaxResult.success(data); } @Override public Long getShareId(ZfDownload zfDownload) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(ZfShare::getShareId, zfDownload.getDownloadId()) .eq(ZfShare::getShareContent, zfDownload.getDownloadContent()) .eq(ZfShare::getSysMenuId, zfDownload.getSysMenuId()); List beanRecords = list(lqw); if (beanRecords.size() != 0){ return beanRecords.get(0).getUserId(); } else { return null; } } @Override public AjaxResult selectShareUserInfo(Integer user_id, Long menuId) { List zInfoUsers = zfShareMapper.selectShareInfo(user_id, menuId); return AjaxResult.success(zInfoUsers); } @Override public Boolean deleteByContentId(Long[] ids) { List id = new ArrayList<>(); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.in(ids != null, ZfShare::getShareContent, ids) .eq(ZfShare::getSysMenuId, 2027L); List zfShares = list(lqw); if (zfShares.size() == 0) { return true; } for (ZfShare zfShare : zfShares) { id.add(zfShare.getId()); } System.out.println(id); if (removeByIds(id)) { //删除es中的数据 zfShares.forEach(zfDoctorDownload -> { EsModel esModel = esService.findByCtId(zfDoctorDownload.getId().intValue(), "个人财产分享删除"); if (esModel != null) { DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId()); System.out.println(deleteRequest); try { restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT); } catch (IOException e) { throw new RuntimeException(e); } } }); return true; } else { return false; } } }