package com.hzs.sale.product.service.impl;


import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.CacheConstants;
import com.hzs.common.core.service.RedisService;
import com.hzs.common.domain.sale.product.BdProduct;
import com.hzs.common.domain.sale.product.BdProductExtend;
import com.hzs.sale.product.mapper.BdProductExtendMapper;
import com.hzs.sale.product.service.IBdProductExtendService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * <p>
 * 商品拓展表 服务实现类
 * </p>
 *
 * @author hzs
 * @since 2022-09-01
 */
@Service
public class BdProductExtendServiceImpl extends ServiceImpl<BdProductExtendMapper, BdProductExtend> implements IBdProductExtendService {
    @Autowired
    private RedisService redisService;
    /**
     * 根据产品id查询产品拓展
     * @param productId
     * @return
     */
    @Override
    public BdProductExtend getProductExtend(Integer productId) {
        BdProductExtend productExtend = redisService.getCacheObject(CacheConstants.BD_PRODUCT_EXTEND + productId);
        if(productExtend == null){
            productExtend = baseMapper.selectByProductId(productId);
            if(productExtend != null){
                redisService.setCacheObject(CacheConstants.BD_PRODUCT_EXTEND + productExtend.getPkId(), productExtend);
            }
        }
        return productExtend;
    }
    /**
     * 根据产品id 查找当前商品的上一位商品排序
     * @param productId
     * @return
     */
    @Override
    public Integer selectByMoveUpSort(Integer productId) {
        return baseMapper.selectByMoveUpSort(productId);
    }
    /**
     * 大于传入编号的全部上移1
     * @param sort
     */
    @Override
    public void updateMoveUpBySort(Integer sort) {
         baseMapper.updateMoveUpBySort(sort);
    }
    /**
     * 根据id 查询当前商品的下一位商品排序
     * @param productId
     * @return
     */
    @Override
    public Integer selectByMoveDownSort(Integer productId) {
        return  baseMapper.selectByMoveDownSort(productId);
    }
    /**
     * 大于传入编号的全部下移1
     * @param sort
     */
    @Override
    public void updateMoveDownBySort(Integer sort) {
        baseMapper.updateMoveDownBySort(sort);
    }
    /**
     * 查询排序最大值
     * @return
     */
    @Override
    public Integer getMaxProductSort() {
       return baseMapper.getMaxProductSort();
    }
}
