package com.taobao.upp.subcommon.bizlogic.rights.support;

import javax.annotation.Resource;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Component;

import com.taobao.tair.DataEntry;
import com.taobao.tair.Result;
import com.taobao.tair.ResultCode;
import com.taobao.tair.impl.mc.MultiClusterTairManager;

@Component("couponIssueLockManage")
public class CouponIssueLockSupport {

private static final Log logger = LogFactory.getLog(CouponIssueLockSupport.class);

@Resource(name = "tairManager")
private MultiClusterTairManager multiClusterTairManager;

public boolean getLock(String lockKey){
Result<DataEntry> dataResult = multiClusterTairManager.get(643, lockKey);
if(dataResult.isSuccess()){
if(dataResult.getValue()==null){
ResultCode resultCode = multiClusterTairManager.put(643, lockKey, 1, 10, 60);
if(resultCode.isSuccess()){
return true;
}
}
}

logger.error("权益加锁失败,lockKey="+lockKey);
return false;
}

public boolean releaseLock(String lockKey){
ResultCode resultCode = multiClusterTairManager.invalid(643, lockKey);
if(resultCode.isSuccess()){
return true;
}

logger.error("权益解锁失败,lockKey="+lockKey);
return false;
}
}