TdCBusinessCouponDaoImpl.java 8.83 KB
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<TdCBusinessCoupon> 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<TdCBusinessCoupon> entityList = tdCBusinessCouponMapper.selectByExample(example);

        if(CollectionUtils.isEmpty(entityList)){
            return null;
        }

        return entityList.get(0);
    }

    @Override
    public List<TdCBusinessCoupon> queryTdCBusinessCoupon(TdCBusinessCouponRequest request) {
        //TODO 编写smapper实现
        //return tdCBusinessCouponSMapper.queryTdCBusinessCoupon(request);
        return null;
    }

    @Override
    public int batchDeleteTdCBusinessCouponByPrimaryKey(List<Long> 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<TdCBusinessCoupon> 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<TdCBusinessCoupon> list = tdCBusinessCouponMapper.selectByExample(example);
        if (CollectionUtils.isNotEmpty(list)) {
            return new PageInfo<TdCBusinessCoupon>(list);
        }
        return new PageInfo<TdCBusinessCoupon>(new ArrayList<TdCBusinessCoupon>());
    }

    /**
     * 卡券申领明细表
     * @param request
     * @return
     */
    @Override
    public PageInfo<TdCBusinessCoupon> 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<TdCBusinessCoupon> list = tdCBusinessCouponMapper.selectByExample(example);
        if (CollectionUtils.isNotEmpty(list)) {
            return new PageInfo<TdCBusinessCoupon>(list);
        }
        return new PageInfo<TdCBusinessCoupon>(new ArrayList<TdCBusinessCoupon>());
    }

    /**
     * 批量保存
     *
     * @param requests
     */
    @Override
    public int batchSaveTdCBusinessCoupon(List<TdCBusinessCouponRequest> 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<TdCBusinessCouponSumStaDTO> queryTdCBusinessCouponSumStaForPage(TdCBusinessCouponSumStaRequest request) {
        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
        List<TdCBusinessCouponSumStaDTO> list = tdCBusinessCouponSMapper.queryTdCBusinessCouponSumStaForPage(request);

        if (CollectionUtils.isNotEmpty(list)) {
            return new PageInfo<TdCBusinessCouponSumStaDTO>(list);
        }
        return new PageInfo<TdCBusinessCouponSumStaDTO>(new ArrayList<TdCBusinessCouponSumStaDTO>());
    }
}