package com.miaxis.newgzpt.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.miaxis.common.annotation.DataSource;
import com.miaxis.common.enums.DataSourceTypeEnum;
import com.miaxis.newgzpt.domain.GzptSchPayConfig;
import com.miaxis.newgzpt.domain.GzptUserInfo;
import com.miaxis.newgzpt.dto.GzptSchPayConfigDTO;
import com.miaxis.newgzpt.dto.GzptSchPayConfigUpDTO;
import com.miaxis.newgzpt.mapper.GzptSchPayConfigMapper;
import com.miaxis.newgzpt.service.IGzptSchPayConfigService;
import org.springframework.stereotype.Service;

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


/**
 * <p>
 * 视频VIP表 服务实现类
 * </p>
 *
 * @author ${author}
 * @since 2022-01-27
 */
@Service
@DataSource(value = DataSourceTypeEnum.NEWGZPT)
public class GzptSchPayConfigServiceImpl extends ServiceImpl<GzptSchPayConfigMapper, GzptSchPayConfig> implements IGzptSchPayConfigService {


    @Resource
    private GzptSchPayConfigMapper mapper;


    @Override
    public int isSchPayConfigByUser(GzptUserInfo userInfo) {
        GzptSchPayConfig schPayConfig = mapper.getSchPayConfigByJxbh(userInfo.getSchool());
        if (schPayConfig != null) { //存在合作
            if (1==schPayConfig.getIsOpen()) { // 打开合作
                Date bmDate = userInfo.getCrdate();
                if (bmDate.compareTo(schPayConfig.getOpenTime()) > 0) { //当前时间大于合作时间
                    return 1;
                } else {
                    return 0;
                }
            } else if(2==schPayConfig.getIsOpen()) { //部分合作
                Date bmDate = userInfo.getCrdate();
                if (bmDate.compareTo(schPayConfig.getOpenTime()) > 0) { //当前时间大于合作时间
                    if(userInfo.getIsShare()!=null && 1==userInfo.getIsShare()){ //强制合作学员
                        return 1;
                    } else {
                        return 0;
                    }
                } else {
                    return 0;
                }
            }
        }
        return 0;
    }

    @Override
    public List<GzptSchPayConfig> selectSchPayConfigList(GzptSchPayConfigDTO spDTO) {
        return mapper.selectSchPayConfigList(spDTO);
    }

    @Override
    public int updateSchPayConfigByJxbh(GzptSchPayConfigUpDTO spDTO) {
        return mapper.updateSchPayConfigByJxbh(spDTO);
    }
}
