package com.zteits.business.dao.impl; import org.apache.commons.collections4.CollectionUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.zteits.business.domain.TdCBusinessCoupon; import com.zteits.business.domain.TdCBusinessCouponExample; import com.zteits.business.mapper.smapper.TdCBusinessCouponSMapper; import com.zteits.clouds.api.dto.business.dto.TdCBusinessCouponSumStaDTO; import com.zteits.clouds.api.dto.business.param.TdCBusinessCouponRequest; import com.zteits.business.dao.TdCBusinessCouponDao; import com.zteits.business.mapper.TdCBusinessCouponMapper; import com.zteits.clouds.api.dto.business.param.TdCBusinessCouponSumStaRequest; import com.zteits.clouds.api.dto.clouds.param.BusinessCouponBatchSaveRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.zteits.clouds.api.apibase.constants.DataStatusEnum; import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.Date; import java.util.List; @Component public class TdCBusinessCouponDaoImpl implements TdCBusinessCouponDao { @Autowired private TdCBusinessCouponMapper tdCBusinessCouponMapper; @Autowired private TdCBusinessCouponSMapper tdCBusinessCouponSMapper; @Override public int saveTdCBusinessCoupon(TdCBusinessCoupon tdCBusinessCoupon) { return tdCBusinessCouponMapper.insertSelective(tdCBusinessCoupon); } @Override public int updateByExampleSelective(TdCBusinessCoupon record, TdCBusinessCouponExample example) { return tdCBusinessCouponMapper.updateByExampleSelective(record,example); } @Override public int updateByPrimaryKeySelective(TdCBusinessCoupon record) { return tdCBusinessCouponMapper.updateByPrimaryKeySelective(record); } @Override public List selectByExample(TdCBusinessCouponExample example) { return tdCBusinessCouponMapper.selectByExample(example); } @Override public TdCBusinessCoupon queryByPrimaryKey(Long id) { return tdCBusinessCouponMapper.selectByPrimaryKey(id); } /** * 根据 单个卡券编码 查询已购买卡券信息 * * @param cardNo * @return */ @Override public TdCBusinessCoupon queryByCardNo(String cardNo) { if(StringUtils.isEmpty(cardNo)){ return null; } TdCBusinessCouponExample example = new TdCBusinessCouponExample(); example.createCriteria() .andCardNoEqualTo(cardNo) .andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); List entityList = tdCBusinessCouponMapper.selectByExample(example); if(CollectionUtils.isEmpty(entityList)){ return null; } return entityList.get(0); } @Override public List queryTdCBusinessCoupon(TdCBusinessCouponRequest request) { //TODO 编写smapper实现 //return tdCBusinessCouponSMapper.queryTdCBusinessCoupon(request); return null; } @Override public int batchDeleteTdCBusinessCouponByPrimaryKey(List ids, String opId, String opName) { TdCBusinessCoupon record = new TdCBusinessCoupon(); record.setDataState(DataStatusEnum.DATA_STATUS_NO_VALID.value()); TdCBusinessCouponExample example = new TdCBusinessCouponExample(); example.createCriteria().andIdIn(ids); return tdCBusinessCouponMapper.updateByExampleSelective(record,example); } @Override public PageInfo queryTdCBusinessCouponForPage(TdCBusinessCouponRequest request) { PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize()); TdCBusinessCouponExample example = new TdCBusinessCouponExample(); TdCBusinessCouponExample.Criteria sql = example.createCriteria(); if(!StringUtils.isEmpty(request.getBusinessId())){ sql.andBusinessIdEqualTo(request.getBusinessId()); } if(!StringUtils.isEmpty(request.getCardRuleNo())){ sql.andCardRuleNoEqualTo(request.getCardRuleNo()); } if(!StringUtils.isEmpty(request.getPlNo())){ sql.andPlNoEqualTo(request.getPlNo()); } if(!StringUtils.isEmpty(request.getCardType())){ sql.andCardTypeEqualTo(request.getCardType()); } List list = tdCBusinessCouponMapper.selectByExample(example); if (CollectionUtils.isNotEmpty(list)) { return new PageInfo(list); } return new PageInfo(new ArrayList()); } /** * 卡券申领明细表 * @param request * @return */ @Override public PageInfo queryTdCBusinessCouponIssuedForPage(TdCBusinessCouponRequest request) { PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize()); TdCBusinessCouponExample example = new TdCBusinessCouponExample(); TdCBusinessCouponExample.Criteria sql = example.createCriteria(); if(!StringUtils.isEmpty(request.getCardType())){ sql.andCardTypeEqualTo(request.getCardType()); } if(!StringUtils.isEmpty(request.getIssued())){ sql.andIsUesedEqualTo(request.getIssued()); } if(request.getBeginTime() != null){ sql.andUsedDateGreaterThanOrEqualTo(request.getBeginTime()); } if(request.getEndTime() != null){ sql.andUsedDateLessThanOrEqualTo(request.getEndTime()); } List list = tdCBusinessCouponMapper.selectByExample(example); if (CollectionUtils.isNotEmpty(list)) { return new PageInfo(list); } return new PageInfo(new ArrayList()); } /** * 批量保存 * * @param requests */ @Override public int batchSaveTdCBusinessCoupon(List requests) { if(CollectionUtils.isEmpty(requests)){ return 0; } return tdCBusinessCouponSMapper.batchSaveTdCBusinessCoupon(requests); } /** * 根据表td_c_business_coupon_rule_park_rel中的card_rel_park_no字段查询表td_c_business_coupon对应的没有使用的商券 仅返回一条 * * @param cardRelParkNo * @return */ @Override public TdCBusinessCoupon selectOneBusinessCouponByRelNo(String cardRelParkNo) { return tdCBusinessCouponMapper.selectOneBusinessCouponByRelNo(cardRelParkNo); } /** * 批量根据卡号将状态修改为已使用 * * @param request */ @Override public void batchUpdateCouponUsedStatus(BusinessCouponBatchSaveRequest request) { tdCBusinessCouponSMapper.batchUpdateCouponUsedStatus(request.getRequests()); } /** * 卡券申领明细总览 * @param request * @return */ @Override public String couponDetailSummary(TdCBusinessCouponRequest request) { return tdCBusinessCouponSMapper.couponDetailSummary(request); } /** * 被领取张数 * @param request * @return */ @Override public int getIssuedCount(TdCBusinessCouponRequest request) { return tdCBusinessCouponSMapper.getIssuedCount(request); } /** * 使用张数 * @param request * @return */ @Override public int getUsedCount(TdCBusinessCouponRequest request) { return tdCBusinessCouponSMapper.getUsedCount(request); } /** * 某个券剩余张数 * @param request * @return */ @Override public int getRemainingCount(TdCBusinessCouponRequest request) { return tdCBusinessCouponSMapper.getRemainingCount(request); } /** * 根据cardRelParkNo,查询本月已经购买的优惠券的数量 * * @param cardRelParkNo * @param startDate * @param endDate * @return */ @Override public int selectBusinessCouponBuyNumByCardRelParkNo(String cardRelParkNo, Date startDate, Date endDate) { return tdCBusinessCouponMapper.selectBusinessCouponBuyNumByCardRelParkNo(cardRelParkNo,startDate,endDate); } @Override public PageInfo queryTdCBusinessCouponSumStaForPage(TdCBusinessCouponSumStaRequest request) { PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize()); List list = tdCBusinessCouponSMapper.queryTdCBusinessCouponSumStaForPage(request); if (CollectionUtils.isNotEmpty(list)) { return new PageInfo(list); } return new PageInfo(new ArrayList()); } }