
package com.tmerclub.cloud.product.feign;

import com.tmerclub.cloud.api.product.dto.SkuStockLockDTO;
import com.tmerclub.cloud.api.product.dto.StockBillLogItemDTO;
import com.tmerclub.cloud.api.product.feign.SkuStockChangeFeignClient;
import com.tmerclub.cloud.api.product.vo.SkuStockVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity;
import com.tmerclub.cloud.common.security.AuthUserContext;
import com.tmerclub.cloud.product.service.SkuStockLockService;
import org.apache.dubbo.config.annotation.DubboService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;


/**
 * @author tmerclub
 * @date 2020/12/8
 */
@DubboService
public class SkuStockChangeFeignController implements SkuStockChangeFeignClient {

    private static final Logger logger = LoggerFactory.getLogger(SkuStockChangeFeignController.class);
    @Autowired
    private SkuStockLockService skuStockLockService;

    @Override
    public ServerResponseEntity<?> lock(List<StockBillLogItemDTO> skuStockLocksParam) {
        logger.info("锁定库存， 账号信息：{}", AuthUserContext.get());
        return skuStockLockService.lock(skuStockLocksParam);
    }

    @Override
    public String lockPurchaseOrder(List<SkuStockLockDTO> skuStockLocks) {
        logger.info("锁定库存， 账号信息：{}", AuthUserContext.get());
        return skuStockLockService.lockPurchaseOrder(skuStockLocks);
    }

    @Override
    public String purchaseOrderReduceLockStock(List<SkuStockLockDTO> skuStockLocks) {
        logger.info("减少锁定库存， 账号信息：{}", AuthUserContext.get());
        return skuStockLockService.purchaseOrderReduceLockStock(skuStockLocks);
    }

    @Override
    public String lockAllotOrder(List<SkuStockLockDTO> skuStockLocks) {
        logger.info("锁定库存， 账号信息：{}", AuthUserContext.get());
        return skuStockLockService.lockAllotOrder(skuStockLocks);
    }

    @Override
    public String reduceLockAllotOrder(List<SkuStockLockDTO> skuStockLocks) {
        logger.info("减少锁定库存， 账号信息：{}", AuthUserContext.get());
        return skuStockLockService.reduceLockAllotOrder(skuStockLocks);
    }

    @Override
    public String changeStock(List<SkuStockVO> skuStockLocks) {
        logger.info("改变库存， 账号信息：{}", AuthUserContext.get());
        return skuStockLockService.changeStock(skuStockLocks);
    }
}
