package com.hai.service.impl;

import com.hai.dao.HighDiscountPackageRecordMapper;
import com.hai.entity.HighDiscountPackageRecord;
import com.hai.entity.HighDiscountPackageRecordExample;
import com.hai.service.HighDiscountPackageRecordService;
import org.apache.commons.collections4.MapUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @serviceName HighDiscountPackageRecordServiceImpl.java
 * @author Sum1Dream
 * @version 1.0.0
 * @Description //
 * @createTime 12:12 下午 2021/12/9
 **/
@Service("highDiscountPackageRecordService")
public class HighDiscountPackageRecordServiceImpl implements HighDiscountPackageRecordService {

    @Resource
    private HighDiscountPackageRecordMapper discountPackageRecordMapper;

    @Resource
    private HighDiscountPackageRecordMapper highDiscountPackageRecordMapper;

    @Override
    public List<HighDiscountPackageRecord> getDiscountPackageRecord(Map<String, Object> map) {

        HighDiscountPackageRecordExample example = new HighDiscountPackageRecordExample();
        HighDiscountPackageRecordExample.Criteria criteria = example.createCriteria();

        if (MapUtils.getString(map, "phone") != null) {
            criteria.andExt1Like("%" + MapUtils.getString(map, "phone") + "%");
        }
        if (MapUtils.getString(map, "title") != null) {
            criteria.andDiscountPackageTitleLike("%" + MapUtils.getString(map, "phone") + "%");
        }
        if (MapUtils.getString(map, "recordNo") != null) {
            criteria.andRecordNoLike("%" + MapUtils.getString(map, "recordNo") + "%");
        }
        if (MapUtils.getInteger(map, "saleType") != null) {
            criteria.andSalesTypeEqualTo(MapUtils.getInteger(map, "saleType"));
        }
        if (MapUtils.getInteger(map, "companyId") != null) {
            criteria.andCompanyIdEqualTo(MapUtils.getInteger(map, "companyId"));
        }

        criteria.andStatusEqualTo(1);

        example.setOrderByClause("created_time");

        return discountPackageRecordMapper.selectByExample(example);
    }

    @Override
    public void insertRecord(HighDiscountPackageRecord record) {
        record.setCreatedTime(new Date());
        record.setStatus(1);
        highDiscountPackageRecordMapper.insert(record);
    }

    @Override
    public Boolean isGive(Long userId) {

        HighDiscountPackageRecordExample example = new HighDiscountPackageRecordExample();
        HighDiscountPackageRecordExample.Criteria criteria = example.createCriteria();

        criteria.andUserIdEqualTo(userId.intValue()).andStatusEqualTo(1);

        List<HighDiscountPackageRecord> list = discountPackageRecordMapper.selectByExample(example);

        return list.size() > 0;
    }
}
