package com.ruoyi.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.domain.*; import com.ruoyi.mapper.ZfApplicationMapper; import com.ruoyi.service.*; 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.*; @Service public class ZfApplicationServiceImpl extends ServiceImpl implements ZfApplicationService { @Resource ZInfoUserService zInfoUserService; @Resource EsService esService; @Resource private RestHighLevelClient restHighLevelClient; @Override public AjaxResult selectDoctorList(ZfApplication zfApplication, Integer pageNum, Integer pageSize,Integer roleId) { //要查自己家庭的 ZInfoUser myself = zInfoUserService.getMyself(); System.out.println("[[[[[[[[["+myself); if (myself !=null) { System.out.println("iiiiiii"+myself.getClanId()); zfApplication.setClanId(myself.getClanId()); if (roleId != 1) zfApplication.setApplicant(myself.getSysId().intValue()); } LambdaQueryWrapper lqw = buildCondition(zfApplication); Page zfDoctorPage = new Page<>(pageNum, pageSize); Page pageResult = page(zfDoctorPage, lqw); List beanRecords = pageResult.getRecords();//得到查询出来的数据 HashMap data = MapUtils.getResult(pageResult, beanRecords); return AjaxResult.success(data); } @Override public List selectByCondition(ZfApplication zfApplication) { LambdaQueryWrapper lambdaQueryWrapper = buildCondition(zfApplication); List beanRecords = list(lambdaQueryWrapper); return beanRecords; } @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(ZfApplication zfApplication) { ZInfoUser myself = zInfoUserService.getMyself(); Long userId = SecurityUtils.getUserId(); if (myself !=null) { zfApplication.setClanId(myself.getClanId()); } Date currentDate = new Date(); zfApplication.setApplicant(userId.intValue()); zfApplication.setStatus("0"); zfApplication.setCreateTime(currentDate); if (save(zfApplication)) { EsModel esModel = new EsModel(); Integer inte = zfApplication.getId(); String uuid = UUID.randomUUID().toString().replace("-", ""); esModel.setId(uuid); esModel.setCtId(Long.valueOf(inte)); esModel.setCtTableName("申请表"); esModel.setBy2(zfApplication.getApplyReason()); //这里存储查询详情的路径 esService.insertTable(esModel); return AjaxResult.success(); } else { return AjaxResult.error(); } } @Override public AjaxResult deleteData(Long[] ids) { List zfDoctors = listByIds(Arrays.asList(ids)); if (this.removeByIds(Arrays.asList(ids))) { //删除es中的数据 zfDoctors.stream().forEach(zfDoctor -> { EsModel esModel = esService.findByCtId(zfDoctor.getId().intValue(), "申请表"); if (esModel != null) { DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId()); try { restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT); } catch (IOException e) { throw new RuntimeException(e); } } }); return AjaxResult.success(); } else { return AjaxResult.error(); } } @Override public AjaxResult setStatus(ZfApplication zfApplication) { Date currentDate = new Date(); System.out.println("[[[[[[["+zfApplication); LambdaUpdateWrapper lqw = new LambdaUpdateWrapper(); lqw .eq(ZfApplication::getId,zfApplication.getId()) .set(ZfApplication::getStatus,zfApplication.getStatus()) .set(ZfApplication::getCreateTime, currentDate); boolean isUpdated = this.update(lqw); // 使用Service执行更新 if (isUpdated) { if (zfApplication.getStatus().equals("1")) return AjaxResult.success("已经给该用户延长试用时间"); else return AjaxResult.success("已驳回该用户的申请"); } else { return AjaxResult.error("更新失败,请检查数据"); } } private LambdaQueryWrapper uniqueCondition(ZfApplication zfApplication) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(zfApplication.getApplicant() != null,ZfApplication::getApplicant, zfApplication.getApplicant()) .eq(StringUtils.isNotEmpty(zfApplication.getApplyReason()), ZfApplication::getApplyReason, zfApplication.getApplyReason()) .eq(zfApplication.getStatus() != null, ZfApplication::getStatus, zfApplication.getStatus()) .eq(zfApplication.getClanId() != null, ZfApplication::getClanId, zfApplication.getClanId()) .eq(zfApplication.getApplyDay() != null, ZfApplication::getApplyDay, zfApplication.getApplyDay()); return lqw; } private LambdaQueryWrapper buildCondition(ZfApplication zfApplication) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.orderByDesc(ZfApplication::getCreateTime); lqw.like(zfApplication.getApplicant() !=null,ZfApplication::getApplicant, zfApplication.getApplicant()) .like(StringUtils.isNotEmpty(zfApplication.getApplyReason()), ZfApplication::getApplyReason, zfApplication.getApplyReason()) .like(zfApplication.getStatus() != null, ZfApplication::getStatus, zfApplication.getStatus()) .like(zfApplication.getClanId() != null, ZfApplication::getClanId, zfApplication.getClanId()) .like(zfApplication.getApplyDay() != null, ZfApplication::getApplyDay, zfApplication.getApplyDay()) .like(zfApplication.getId() != null, ZfApplication::getId, zfApplication.getId()) ; return lqw; } }