package com.hwrj.cloud.portal.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hwrj.cloud.portal.dao.OmsPreItemDao;
import com.hwrj.cloud.portal.domain.PmsPortalProductDetail;
import com.hwrj.cloud.portal.domain.UmsCompanyInfoDto;
import com.hwrj.cloud.portal.mapper.OmsPreItemMapper;
import com.hwrj.cloud.portal.model.*;
import com.hwrj.cloud.portal.service.OmsPreItemService;
import com.hwrj.cloud.portal.service.PmsPortalProductService;
import com.hwrj.cloud.portal.service.UmsCompanyInfoService;
import com.hwrj.cloud.portal.service.UmsMemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.Date;
import java.util.List;

@Service
public class OmsPreItemServiceImpl implements OmsPreItemService {

    @Autowired
    private OmsPreItemMapper omsPreItemMapper;

    @Autowired
    private UmsCompanyInfoService umsCompanyInfoService;

    @Autowired
    private OmsPreItemDao omsPreItemDao;




    @Autowired
    private PmsPortalProductService pmsPortalProductService;

    @Override
    public void addOmsPreItem(OmsPreItem omsPreItem) {


        Long productId = omsPreItem.getProductId();
        if (omsPreItem.getProductId() == null){
            throw new RuntimeException("非法操作");
        }
        OmsPreItemExample example = new OmsPreItemExample();
        OmsPreItemExample.Criteria criteria = example.createCriteria();
        criteria.andMemberIdEqualTo(omsPreItem.getMemberId());
        criteria.andProductIdEqualTo(omsPreItem.getProductId());
        List<OmsPreItem> omsPreItems = omsPreItemMapper.selectByExample(example);
        if (omsPreItems != null && omsPreItems.size()>0){
            throw new RuntimeException("已经添加过有意向");
        }

        PmsPortalProductDetail detail = pmsPortalProductService.detail(productId);
        PmsProduct product = detail.getProduct();
        PmsBrand brand = detail.getBrand();
        UmsCompanyInfoDto companyInfo = detail.getCompanyInfo();
        List<PmsSkuStock> skuStockList = detail.getSkuStockList();
        if (product == null){
            throw  new RuntimeException("抢购商品已经下架");
        }
        omsPreItem.setProductName(product.getName());
        omsPreItem.setPushId(product.getCreateId());

            omsPreItem.setCompId(product.getCompId());
            omsPreItem.setCompName(product.getCompName());

        if (brand != null){
            omsPreItem.setProductBrand(brand.getName());
        }

        if (omsPreItem!= null){
            omsPreItem.setCreateDate(new Date());
            int i = omsPreItemMapper.insertSelective(omsPreItem);
        }else {
            throw new RuntimeException("添加预购失败");
        }

    }

    @Override
    public OmsPreItem getOmsPreItemDetail(Long preId) {
        if (StringUtils.isEmpty(preId)){
            return omsPreItemMapper.selectByPrimaryKey(preId);
        }
        return null;
    }

    @Override
    public List<OmsPreItemDao> getOmsPreItemListOwn(Long id, int pageSize, int pageNo) {
        PageHelper.startPage(pageNo,pageSize);
        List<OmsPreItemDao> omsPreItemDaos = omsPreItemDao.selectOmsPreItemDao(null, id);
        return omsPreItemDaos;

    }

    @Override
    public List<OmsPreItemDao> getOmsPreItemListOther(Long id,int pageSize,int pageNo) {
        PageHelper.startPage(pageNo,pageSize);
        List<OmsPreItemDao> omsPreItemDaos = omsPreItemDao.selectOmsPreItemDao(id, null);
        return omsPreItemDaos;
    }

    @Override
    public List<OmsPreItem> getOmsPreByMyAndProductId(Long proId, Long memberId) {
        OmsPreItemExample example = new OmsPreItemExample();
        OmsPreItemExample.Criteria criteria = example.createCriteria();
        criteria.andMemberIdEqualTo(memberId);
        criteria.andProductIdEqualTo(proId);
        List<OmsPreItem> omsPreItems = omsPreItemMapper.selectByExample(example);
        return null;
    }


}
