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.utils.MapUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.domain.*; import com.ruoyi.mapper.LiveStreamingMapper; import com.ruoyi.service.EsService; import com.ruoyi.service.LiveStreamingService; import com.ruoyi.service.ZAuthorityService; import com.ruoyi.service.ZInfoUserService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; import static com.ruoyi.constant.MenuAuthority.DOCTOR_LIST; @Slf4j @Service public class LiveStreamingServiceImpl extends ServiceImpl implements LiveStreamingService { @Resource ZInfoUserService zInfoUserService; @Resource ZAuthorityService zAuthorityService; @Resource private EsService esSer; private LambdaQueryWrapper buildCondition(LiveStreaming liveStreaming) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); // lqw.in(LiveStreaming::getFamilyId,familyIdList); lqw.orderByDesc(LiveStreaming::getCreateTime); lqw.like(StringUtils.isNotEmpty(liveStreaming.getTitle()), LiveStreaming::getTitle, liveStreaming.getTitle()) .like(StringUtils.isNotEmpty(liveStreaming.getApplyPerson()),LiveStreaming::getApplyPerson,liveStreaming.getApplyPerson()) .like(StringUtils.isNotEmpty(liveStreaming.getContactPerson()),LiveStreaming::getContactPerson,liveStreaming.getContactPerson()); lqw.between(liveStreaming.getHappenStartTime() != null && liveStreaming.getHappenEndTime() != null,LiveStreaming::getCreateTime,liveStreaming.getHappenStartTime(),liveStreaming.getHappenEndTime()); return lqw; } private LambdaQueryWrapper uniqueCondition(LiveStreaming liveStreaming){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(!StringUtils.isEmpty(liveStreaming.getTitle()), LiveStreaming::getTitle, liveStreaming.getTitle()); lqw.eq(!StringUtils.isEmpty(liveStreaming.getContactPhone()), LiveStreaming::getContactPhone, liveStreaming.getContactPhone()); lqw.eq(!StringUtils.isEmpty(liveStreaming.getApplyPerson()), LiveStreaming::getApplyPerson, liveStreaming.getApplyPerson()); lqw.eq(!StringUtils.isEmpty(liveStreaming.getContactPerson()), LiveStreaming::getContactPerson, liveStreaming.getContactPerson()); return lqw; } @Override public AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize) { //要查自己家庭的 // ZInfoUser myself = zInfoUserService.getMyself(); // if(myself==null) // { // // System.out.println("ssssss"); // return AjaxResult.success("您没加入到对应的家庭,请联系管理员"); // } // Long familyId = myself.getFamilyId(); // //也要查别人授权的 // List authority = zAuthorityService.getAuthority(); // List idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(DOCTOR_LIST)).map(ZAuthority::getFid).collect(Collectors.toList()); // //加上自己家庭的id // idList.add(familyId); // String familyIds = listFamilyIds(); // String secondFamilyAuthority = listSecondFamilyIds(); LambdaQueryWrapper lqw = buildCondition(liveStreaming); Page liveStreamingPage = new Page<>(pageNum, pageSize); Page pageResult = page(liveStreamingPage, lqw); List beanRecords = pageResult.getRecords();//得到查询出来的数据 // List dtoResult = markOwnData(familyId, beanRecords); HashMap data = MapUtils.getResult(pageResult, beanRecords); return AjaxResult.success(data); } @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 public AjaxResult addData(LiveStreaming liveStreaming) { LambdaQueryWrapper lqw = uniqueCondition(liveStreaming); List list = list(lqw); if(list.size()>0){ throw new RuntimeException("请勿新增重复数据"); } if (save(liveStreaming)) { EsModel esModel = new EsModel(); Long inte =liveStreaming.getId(); String uuid = UUID.randomUUID().toString().replace("-",""); esModel.setId(uuid); esModel.setCtId(Long.valueOf(inte)); esModel.setCtTableName("直播"); esModel.setBy1(liveStreaming.getTitle()); esModel.setBy2(liveStreaming.getApplyPerson()); //这里存储查询详情的路径 esModel.setBy5("/zLIveStreaming"); // esModel.setFid(familyId); esSer.insertTable(esModel); // System.out.println(esModel); return AjaxResult.success(); } else { return AjaxResult.error(); } } }