package com.zteits.sys.dao.impl; import java.util.Date; import java.util.List; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.xiaoleilu.hutool.util.CollectionUtil; import com.zteits.clouds.api.apibase.constants.DataStatusEnum; import com.zteits.clouds.api.dto.sys.param.NoticeQueryReq; import com.zteits.clouds.api.dto.sys.param.NoticeUpdateReq; import com.zteits.clouds.api.dto.sys.param.QueryLatestNoticeRequest; import com.zteits.clouds.api.dto.sys.param.QueryNoticeForPageRequest; import com.zteits.sys.dao.SysNoticeDao; import com.zteits.sys.domain.SysNotice; import com.zteits.sys.domain.SysNoticeExample; import com.zteits.sys.mapper.SysNoticeMapper; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; @Component public class SysNoticeDaoImpl implements SysNoticeDao { @Autowired private SysNoticeMapper sysNoticeMapper; @Override public SysNotice queryLatestNotice(QueryLatestNoticeRequest request) { SysNoticeExample example = new SysNoticeExample(); SysNoticeExample.Criteria sql = example.createCriteria(); if (request.getOrgId() != null) { sql.andOrgIdEqualTo(request.getOrgId()); } if (request.getNoticeBigType() != null) { sql.andNoticeBigTypeEqualTo(request.getNoticeBigType()); } sql.andExpDateGreaterThanOrEqualTo(new Date()); example.setOrderByClause(" eff_date desc"); List sysNotices = sysNoticeMapper.selectByExampleWithBLOBs(example); if (CollectionUtils.isEmpty(sysNotices)) { return null; } return sysNotices.get(0); } @Override public PageInfo queryNoticeForPage(QueryNoticeForPageRequest request) { SysNoticeExample example = new SysNoticeExample(); SysNoticeExample.Criteria sql = example.createCriteria(); if (CollectionUtil.isNotEmpty(request.getNoticeBigTypes())) { sql.andNoticeBigTypeIn(request.getNoticeBigTypes()); } if (CollectionUtil.isNotEmpty(request.getOrgIds())) { sql.andOrgIdIn(request.getOrgIds()); } if (null != request.getStartCreateTime()) { sql.andCreateDateGreaterThanOrEqualTo(request.getStartCreateTime()); } if (null != request.getEndCreateTime()) { sql.andCreateDateLessThanOrEqualTo(request.getEndCreateTime()); } sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); if (!request.getShowAll()) { sql.andEffDateLessThanOrEqualTo(new Date()); sql.andExpDateGreaterThanOrEqualTo(new Date()); } example.setOrderByClause(" create_date desc,exp_date desc"); PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize()); List list = sysNoticeMapper.selectByExample(example); return new PageInfo<>(list); } @Override public Boolean saveNotice(SysNotice sysNotice) { return sysNoticeMapper.insertSelective(sysNotice) > 0; } @Override public SysNotice queryNotice(NoticeQueryReq req) { SysNoticeExample example = new SysNoticeExample(); SysNoticeExample.Criteria sql = example.createCriteria(); //sql.andEffDateLessThanOrEqualTo(new Date()); //sql.andExpDateGreaterThanOrEqualTo(new Date()); sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); if(null != req.getNoticeId()){ sql.andNoticeIdEqualTo(req.getNoticeId()); } if(null != req.getId()){ sql.andIdEqualTo(req.getId()); } example.setOrderByClause(" id desc"); List list = sysNoticeMapper.selectByExample(example); SysNotice sysNotice = null; if (CollectionUtil.isNotEmpty(list)) { sysNotice = list.get(0); } return sysNotice; } @Override public Boolean updateNotice(NoticeUpdateReq req) { SysNoticeExample example = new SysNoticeExample(); SysNoticeExample.Criteria sql = example.createCriteria(); sql.andIdEqualTo(req.getId()); SysNotice sysNotice = new SysNotice(); BeanUtils.copyProperties(req, sysNotice); if (null != req.getExpireDate()) { sysNotice.setExpDate(req.getExpireDate()); } if (req.getDeleteOp()) { sysNotice.setDataState(DataStatusEnum.DATA_STATUS_NO_VALID.value()); } if (null != req.getExpireDate()) { sysNotice.setExpDate(req.getExpireDate()); } sysNotice.setModfiyEmpId(req.getsOpId() + ""); sysNotice.setModfiyEmpName(req.getsOpName()); sysNotice.setModfiyDate(new Date()); return sysNoticeMapper.updateByExampleSelective(sysNotice, example) > 0; } }