package com.zteits.pay.dao.impl; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.xiaoleilu.hutool.date.DateUtil; import com.xiaoleilu.hutool.util.CollectionUtil; import com.zteits.clouds.api.apibase.constants.DataStatusEnum; import com.zteits.clouds.api.dto.pay.TdCCouponRuleDTO; import com.zteits.clouds.api.dto.pay.param.*; import com.zteits.pay.dao.TdCCouponRuleDao; import com.zteits.pay.domain.TdCCouponRule; import com.zteits.pay.domain.TdCCouponRuleExample; import com.zteits.pay.domain.TdCCouponRuleParkExample; import com.zteits.pay.mapper.TdCCouponRuleMapper; import com.zteits.pay.mapper.TdCCouponRuleParkMapper; import com.zteits.pay.mapper.smapper.TdCCouponRuleSMapper; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; /** * Copyright: Copyright (c) 2017 zteits * * @Description: * @version: v1.0.0 * @author: langlw * @date: 2017/12/27 15 * Modification History: * Date Author Version Description * ---------------------------------------------------------* * 2017/12/27 langlw v1.0.0 创建 */ @Component public class TdCCouponRuleDaoImpl implements TdCCouponRuleDao { @Autowired private TdCCouponRuleSMapper tdCCouponRuleSMapper; @Autowired private TdCCouponRuleMapper tdCCouponRuleMapper; @Autowired private TdCCouponRuleParkMapper tdCCouponRuleParkMapper; @Override public List queryCouponRuleList(TdCCouponRuleRequest request) { return tdCCouponRuleSMapper.queryCouponRuleList(request); } /** * 查询所有有效的优惠规则 * @param request * @return */ @Override public List getCouponRuleList(TdCCouponRuleRequest request) { TdCCouponRuleExample example = new TdCCouponRuleExample(); example.createCriteria().andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); return tdCCouponRuleMapper.selectByExample(example); } @Override public List queryAllSellingCoupons(TdCCouponPersonRequest request) { return tdCCouponRuleSMapper.queryAllSellingCoupons(request); } @Override public TdCCouponRule queryCouponRuleByCardNo(String cardNo) { TdCCouponRuleExample example = new TdCCouponRuleExample(); example.createCriteria().andCardNoEqualTo(cardNo).andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()) .andCardStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()).andEndTimeGreaterThan(new Date()); List tdCCouponRules = tdCCouponRuleMapper.selectByExample(example); if(CollectionUtil.isEmpty(tdCCouponRules)){ return null; } return tdCCouponRules.get(0); } @Override public List queryCouponRuleByCardNoList(List cardNos) { return tdCCouponRuleSMapper.queryCouponRuleByCardNoList(cardNos); } @Override public Boolean updateCouponRuleByCardNo(TdCCouponRule tdCCouponRule) { TdCCouponRuleExample example = new TdCCouponRuleExample(); example.createCriteria().andCardNoEqualTo(tdCCouponRule.getCardNo()) .andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()) .andCardStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()).andEndTimeGreaterThan(new Date()); return tdCCouponRuleMapper.updateByExampleSelective(tdCCouponRule, example) > 0; } @Override public List queryHotCouponRuleForList(QueryHotCouponRequest request) { return tdCCouponRuleSMapper.queryHotCouponRuleForList(request); } @Override public List queryColdCouponRuleForList(QueryHotCouponRequest request) { return tdCCouponRuleSMapper.queryColdCouponRuleForList(request); } @Override public List queryCouponRuleParkMsg(TdCCouponRuleRequest request) { return tdCCouponRuleSMapper.queryCouponRuleParkMsg(request); } @Override public TdCCouponRuleDTO selectByCardNo(TdCCouponRuleRequest request) { TdCCouponRuleDTO tdCCouponRuleDTO = new TdCCouponRuleDTO(); TdCCouponRule tCCouponRule = tdCCouponRuleSMapper.selectByCardNo(request.getCardNo()); if(tCCouponRule!=null) { BeanUtils.copyProperties(tCCouponRule, tdCCouponRuleDTO); } return tdCCouponRuleDTO; } /** * 保存优惠券.
* @param request * @return */ @Override public Integer saveCouponRule(TdCCouponRuleSaveReq request) { TdCCouponRule record = new TdCCouponRule(); BeanUtils.copyProperties(request,record); return tdCCouponRuleMapper.insertSelective(record); } @Override public Integer saveCouponRuleList(List tdCCouponRuleList) { return tdCCouponRuleSMapper.saveCouponRuleList(tdCCouponRuleList); } /** * 修改优惠券.
* @param request * @return */ @Override public Integer updateCouponRule(TdCCouponRuleSaveReq request) { TdCCouponRule record = new TdCCouponRule(); BeanUtils.copyProperties(request,record); return tdCCouponRuleMapper.updateByPrimaryKeySelective(record); } /** * 删除优惠券.
* @param request * @return */ @Override public Integer deleteCouponRule(TdCCouponRuleSaveReq request) { int deleteFlg = 0; if(null != request && request.getId() != null){ TdCCouponRule tdCCouponRule = tdCCouponRuleMapper.selectByPrimaryKey(request.getId()); /**1.删除优惠券规则.*/ TdCCouponRule couponRuleouponRule = new TdCCouponRule(); couponRuleouponRule.setId(request.getId()); couponRuleouponRule.setDataState(request.getDataState()); deleteFlg = tdCCouponRuleMapper.updateByPrimaryKeySelective(couponRuleouponRule); if(deleteFlg >0 ){ TdCCouponRuleParkExample example = new TdCCouponRuleParkExample(); example.createCriteria().andCardNoEqualTo(tdCCouponRule.getCardNo()); //2.删除停车场优惠券关系表 tdCCouponRuleParkMapper.deleteByExample(example); } } return deleteFlg; } /** * 分页查询优惠券规则 * @Auther: wangfs * @param * @return */ @Override public PageInfo queryCouponRuleForPage(QueryCouponRuleReq request) { //1.设置分页 PageHelper.startPage(request.getBaseRequest().getPageNum(),request.getBaseRequest().getPageSize()); //2.查询数据 TdCCouponRuleExample example = new TdCCouponRuleExample(); TdCCouponRuleExample.Criteria criteria = example.createCriteria(); TdCCouponRuleExample.Criteria criteria2 = example.createCriteria(); if(StringUtils.isNotEmpty(request.getCardNo())){ criteria.andCardNoEqualTo(request.getCardNo()); criteria2.andCardNoEqualTo(request.getCardNo()); } if(StringUtils.isNotEmpty(request.getCardName())){ criteria.andCardNameLike("%"+request.getCardName()+"%"); criteria2.andCardNameLike("%"+request.getCardName()+"%"); } if(StringUtils.isNotEmpty(request.getBatchNo())){ criteria.andBatchNoLike("%"+request.getBatchNo()+"%"); criteria2.andBatchNoLike("%"+request.getBatchNo()+"%"); } if(request.getCouponsType() != null ){ criteria.andCouponsTypeEqualTo(request.getCouponsType()); criteria2.andCouponsTypeEqualTo(request.getCouponsType()); } if(request.getIsUesed() != null ){ criteria.andIsUesedEqualTo(request.getIsUesed()); criteria2.andIsUesedEqualTo(request.getIsUesed()); } if(CollectionUtils.isNotEmpty(request.getCardTypes())){ criteria.andCardTypeIn(request.getCardTypes()); criteria2.andCardTypeIn(request.getCardTypes()); } if(CollectionUtils.isNotEmpty(request.getReceiveChannels())){ criteria.andReceiveChannelsIn(request.getReceiveChannels()); criteria2.andReceiveChannelsIn(request.getReceiveChannels()); } if(null != request.getOrgId()){ criteria.andOrgIdEqualTo(request.getOrgId()); criteria2.andOrgIdEqualTo(request.getOrgId()); } if(null != request.getOwener()){ criteria.andOwenerEqualTo(request.getOwener()); criteria2.andOwenerEqualTo(request.getOwener()); } if(request.getDataState() != null){//生效 if((DataStatusEnum.DATA_STATUS_VALID.value()).equals(request.getDataState())){ criteria.andDataStateEqualTo(request.getDataState()); criteria.andBeginTimeLessThanOrEqualTo(new Date()); criteria.andEndTimeGreaterThanOrEqualTo(new Date()); criteria2.andDataStateEqualTo(request.getDataState()); criteria2.andBeginTimeLessThanOrEqualTo(new Date()); criteria2.andEndTimeGreaterThanOrEqualTo(new Date()); } if((DataStatusEnum.DATA_STATUS_NO_VALID.value()).equals(request.getDataState())){//失效 criteria.andDataStateEqualTo(request.getDataState()); criteria2.andEndTimeLessThan(new Date()); } if(2 == request.getDataState()){//未生效 criteria.andBeginTimeGreaterThan(new Date()); criteria.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); criteria2.andBeginTimeGreaterThan(new Date()); criteria2.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); } } if(request.getEndDate() != null){ criteria.andEndTimeBetween(DateUtil.beginOfDay(request.getEndDate()), DateUtil.endOfDay(request.getEndDate())); criteria2.andEndTimeBetween(DateUtil.beginOfDay(request.getEndDate()), DateUtil.endOfDay(request.getEndDate())); } example.or(criteria2); example.setOrderByClause("id desc"); List tdCCouponRules = tdCCouponRuleMapper.selectByExample(example); return new PageInfo(tdCCouponRules); } @Override public Integer deleteBatchCouponRule(TdCCouponRuleDeleteReq request) { TdCCouponRuleExample example = new TdCCouponRuleExample(); TdCCouponRuleExample.Criteria criteria = example.createCriteria(); criteria.andIdIn(request.getIds()); TdCCouponRule tdCCouponRule = new TdCCouponRule(); tdCCouponRule.setDataState(DataStatusEnum.DATA_STATUS_NO_VALID.value()); return tdCCouponRuleMapper.updateByExampleSelective(tdCCouponRule,example); } /** * 根据优惠券规则CardNo修改优惠券规则为无效 * @param request * @return */ @Override public Integer updateCouponRuleNoValidByCardNo(TdCCouponRuleSaveReq request) { TdCCouponRuleExample example = new TdCCouponRuleExample(); TdCCouponRuleExample.Criteria criteria = example.createCriteria(); criteria.andCardNoEqualTo(request.getCardNo()); TdCCouponRule tdCCouponRule = new TdCCouponRule(); tdCCouponRule.setDataState(DataStatusEnum.DATA_STATUS_NO_VALID.value()); tdCCouponRule.setCardState(DataStatusEnum.DATA_STATUS_NO_VALID.value()); tdCCouponRule.setModfiyDate(new Date()); return tdCCouponRuleMapper.updateByExampleSelective(tdCCouponRule,example); } }