ThirdPartAppAuthorizationServiceImpl.java 3.8 KB
/**
 * 
 */
package com.zteits.pay.biz;

import java.util.Optional;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;

import com.clouds.common.cache.pay.AppAuthCacheUtil;
import com.clouds.common.utils.BeanValidatorsUtils;
import com.zteits.clouds.api.apibase.bean.BizResult;
import com.zteits.clouds.api.dto.pay.ThirdPartAuthorizationCacheDTO;
import com.zteits.clouds.api.dto.pay.param.DeleteAuthorizationRequest;
import com.zteits.clouds.api.dto.pay.param.GetAuthorizationByAppIdRequest;
import com.zteits.clouds.api.dto.pay.param.SaveAuthorizationRequest;
import com.zteits.clouds.api.dto.pay.param.UpdateAuthorizationRequest;
import com.zteits.clouds.api.service.pay.ThirdPartAppAuthorizationService;
import com.zteits.pay.dao.TdCThirdPartAppAuthorizationDao;
import com.zteits.pay.domain.TdCThirdPartAppAuthorization;
import org.springframework.stereotype.Service;

/**
 * @author hxz
 *
 */
@Service("com.zteits.pay.biz.ThirdPartAppAuthorizationServiceImpl")
public class ThirdPartAppAuthorizationServiceImpl implements ThirdPartAppAuthorizationService {
	private static final Logger logger = LoggerFactory.getLogger(ThirdPartAppAuthorizationServiceImpl.class);

	@Autowired
	private TdCThirdPartAppAuthorizationDao tdCThirdPartAppAuthorizationDao;
	
	@Override
	public BizResult<Long> insertThirdPartAppAuthorization(SaveAuthorizationRequest request) {
		logger.info("开始插入第三方授权配置");
		TdCThirdPartAppAuthorization record = new TdCThirdPartAppAuthorization();
		BeanUtils.copyProperties(request, record);
		tdCThirdPartAppAuthorizationDao.insertSelective(record );
		//插入缓存
		final ThirdPartAuthorizationCacheDTO cacheDTO = new ThirdPartAuthorizationCacheDTO();
		BeanUtils.copyProperties(request, cacheDTO);
		AppAuthCacheUtil.setThirdPartAuthInfo(request.getAppId(), cacheDTO);
		return new BizResult<Long>(record.getId());
	}

	@Override
	public BizResult<Boolean> updateThirdPartAppAuthorization(UpdateAuthorizationRequest request) {
		logger.info("开始更新第三方授权配置");
		TdCThirdPartAppAuthorization record = new TdCThirdPartAppAuthorization();
		BeanUtils.copyProperties(request, record);
		tdCThirdPartAppAuthorizationDao.updateByPrimaryKeySelective(record);
		//删除缓存
		AppAuthCacheUtil.deleteThirdPartAuthInfo(request.getAppid());
		return new BizResult<Boolean>(true);
	}

	@Override
	public BizResult<Boolean> deleteThirdPartAppAuthorization(DeleteAuthorizationRequest request) {
		logger.info("开始删除第三方授权配置,id:"+request.getId());
		BeanValidatorsUtils.validateWithException(request);
		tdCThirdPartAppAuthorizationDao.deleteByPrimaryKey(request.getId());
		//删除缓存
		AppAuthCacheUtil.deleteThirdPartAuthInfo(request.getAppId());
		return new BizResult<Boolean>(true);
	}

	@Override
	public BizResult<ThirdPartAuthorizationCacheDTO> getThirdPartAppAuthorizationByAppId(
			GetAuthorizationByAppIdRequest request) {
		logger.info("开始根据appId查询第三方授权配置信息:"+request.getAppId());
		ThirdPartAuthorizationCacheDTO authorizationCacheDTO = null;
		//查询缓存
		authorizationCacheDTO = AppAuthCacheUtil.getThirdPartAuthInfo(request.getAppId());
		if(authorizationCacheDTO==null){
			//查询数据库
			final ThirdPartAuthorizationCacheDTO cacheDTO = new ThirdPartAuthorizationCacheDTO();
			TdCThirdPartAppAuthorization appAuthorization = tdCThirdPartAppAuthorizationDao.queryByAppId(request.getAppId());
			Optional.ofNullable(appAuthorization).ifPresent(item->
			{
				BeanUtils.copyProperties(appAuthorization, cacheDTO);
				//放入缓存
				AppAuthCacheUtil.setThirdPartAuthInfo(request.getAppId(), cacheDTO);
			});
			authorizationCacheDTO = cacheDTO;
		}
		
		return new BizResult<ThirdPartAuthorizationCacheDTO>(authorizationCacheDTO);
	}

}