package com.zteits.pay.dao.impl; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.apache.commons.collections4.CollectionUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.xiaoleilu.hutool.date.DateUtil; import com.zteits.clouds.api.apibase.constants.DataStatusEnum; import com.zteits.clouds.api.dto.pay.param.TdCPresentRuleRequest; import com.zteits.pay.dao.TdCPresentRuleDao; import com.zteits.pay.domain.TdCPresentRule; import com.zteits.pay.domain.TdCPresentRuleExample; import com.zteits.pay.domain.TdCPresentRuleExample.Criteria; import com.zteits.pay.mapper.TdCPresentRuleMapper; @Component public class TdCPresentRuleDaoImpl implements TdCPresentRuleDao { @Autowired private TdCPresentRuleMapper tdCPresentRuleMapper; @Override public int deleteTdCPresentRuleByPrimaryKey(Long id, String opId, String opName) { TdCPresentRule record = new TdCPresentRule(); record.setId(id); record.setModfiyEmpid(opId); record.setModfiyDate(new Date()); record.setDataState(DataStatusEnum.DATA_STATUS_NO_VALID.value()); return tdCPresentRuleMapper.updateByPrimaryKeySelective(record); } @Override public int saveTdCPresentRule(TdCPresentRule tdCPresentRule) { if(tdCPresentRule.getCreateDate()==null){ tdCPresentRule.setCreateDate(new Date()); } // if(tdCPresentRule.getModfiyDate()==null){ // tdCPresentRule.setModfiyDate(new Date()); // } return tdCPresentRuleMapper.insertSelective(tdCPresentRule); } @Override public int updateByExampleSelective(TdCPresentRule record, TdCPresentRuleExample example) { return tdCPresentRuleMapper.updateByExampleSelective(record,example); } @Override public int updateByPrimaryKeySelective(TdCPresentRule record) { return tdCPresentRuleMapper.updateByPrimaryKeySelective(record); } @Override public List selectByExample(TdCPresentRuleExample example) { return tdCPresentRuleMapper.selectByExample(example); } @Override public TdCPresentRule queryByPrimaryKey(Long id) { return tdCPresentRuleMapper.selectByPrimaryKey(id); } @Override public List queryTdCPresentRule(TdCPresentRuleRequest request) { TdCPresentRuleExample example = new TdCPresentRuleExample(); Criteria sql = example.createCriteria(); Criteria sql2 = example.createCriteria(); if(request.getOrgId() != null){ sql.andOrgIdEqualTo(request.getOrgId()); sql2.andOrgIdEqualTo(request.getOrgId()); } if(request.getRuleName() != null){ sql.andRuleNameLike("%"+request.getRuleName()+"%"); sql2.andRuleNameLike("%"+request.getRuleName()+"%"); } if(CollectionUtils.isNotEmpty(request.getPresentSourceDetailTypes())){ sql.andPresentSourceDetailTypeIn(request.getPresentSourceDetailTypes()); sql2.andPresentSourceDetailTypeIn(request.getPresentSourceDetailTypes()); } if(CollectionUtils.isNotEmpty(request.getPresentTypes())){ sql.andPresentTypeIn(request.getPresentTypes()); sql2.andPresentTypeIn(request.getPresentTypes()); } if(request.getState() != null){ if(request.getState() == 1){//生效中 sql.andBeginTimeLessThanOrEqualTo(new Date()).andEndTimeGreaterThanOrEqualTo(new Date()); sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); sql2.andBeginTimeLessThanOrEqualTo(new Date()).andEndTimeGreaterThanOrEqualTo(new Date()); sql2.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); } if(request.getState() == 0){//已失效 sql.andEndTimeLessThan(new Date()); sql2.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_NO_VALID.value()); } if(request.getState() == 2){//未生效 sql.andBeginTimeGreaterThan(new Date()); sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); sql2.andBeginTimeGreaterThan(new Date()); sql2.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); } } // sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); example.or(sql2); return tdCPresentRuleMapper.selectByExample(example); } @Override public int batchDeleteTdCPresentRuleByPrimaryKey(List ids, String opId, String opName) { TdCPresentRule record = new TdCPresentRule(); record.setModfiyEmpid(opId); record.setModfiyDate(new Date()); record.setDataState(DataStatusEnum.DATA_STATUS_NO_VALID.value()); //where条件 TdCPresentRuleExample example = new TdCPresentRuleExample(); example.createCriteria().andIdIn(ids); return tdCPresentRuleMapper.updateByExampleSelective(record,example); } @Override public PageInfo queryTdCPresentRuleForPage(TdCPresentRuleRequest request) { PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize()); TdCPresentRuleExample example = new TdCPresentRuleExample(); Criteria sql = example.createCriteria(); Criteria sql2 = example.createCriteria(); if(request.getOrgId() != null){ sql.andOrgIdEqualTo(request.getOrgId()); sql2.andOrgIdEqualTo(request.getOrgId()); } if(request.getRuleName() != null){ sql.andRuleNameLike("%"+request.getRuleName()+"%"); sql2.andRuleNameLike("%"+request.getRuleName()+"%"); } if(CollectionUtils.isNotEmpty(request.getPresentSourceDetailTypes())){ sql.andPresentSourceDetailTypeIn(request.getPresentSourceDetailTypes()); sql2.andPresentSourceDetailTypeIn(request.getPresentSourceDetailTypes()); } if(CollectionUtils.isNotEmpty(request.getPresentTypes())){ sql.andPresentTypeIn(request.getPresentTypes()); sql2.andPresentTypeIn(request.getPresentTypes()); } if(request.getState() != null){ if(request.getState() == 1){//生效中 sql.andBeginTimeLessThanOrEqualTo(new Date()).andEndTimeGreaterThanOrEqualTo(new Date()); sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); sql2.andBeginTimeLessThanOrEqualTo(new Date()).andEndTimeGreaterThanOrEqualTo(new Date()); sql2.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); } if(request.getState() == 0){//已失效 sql.andEndTimeLessThan(new Date()); sql2.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_NO_VALID.value()); } if(request.getState() == 2){//未生效 sql.andBeginTimeGreaterThan(new Date()); sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); sql2.andBeginTimeGreaterThan(new Date()); sql2.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); } } // sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); if(request.getEndDate() != null){ sql.andEndTimeBetween(DateUtil.beginOfDay(request.getEndDate()), DateUtil.endOfDay(request.getEndDate())); sql2.andEndTimeBetween(DateUtil.beginOfDay(request.getEndDate()), DateUtil.endOfDay(request.getEndDate())); } example.or(sql2); example.setOrderByClause("id desc"); List list = tdCPresentRuleMapper.selectByExample(example); if (CollectionUtils.isNotEmpty(list)) { return new PageInfo(list); } return new PageInfo(new ArrayList()); } /** * 获取同等充值金额的补充数据ID * @param fullCutValue * @param presentSourceDetailType * @return */ @Override public TdCPresentRule queryTdCPresentRuleInfoAsInfo(Integer fullCutValue, Integer presentSourceDetailType,Date d,Long id) { return tdCPresentRuleMapper.queryTdCPresentRuleInfoAsInfo(fullCutValue,presentSourceDetailType,d,id); } }