Newer
Older
newfiber-termite / newfiber-system / newfiber-system-core / src / main / java / com / newfiber / system / service / impl / ClientResourceServiceImpl.java
package com.newfiber.system.service.impl;

import com.newfiber.common.core.domain.ClientResource;
import com.newfiber.common.core.enums.EBoolean;
import com.newfiber.common.core.exception.ServiceException;
import com.newfiber.common.core.web.domain.BaseEntity;
import com.newfiber.common.core.web.service.BaseServiceImpl;
import com.newfiber.common.redis.service.RedisService;
import com.newfiber.system.domain.request.clientResource.ClientResourceQueryRequest;
import com.newfiber.system.domain.request.clientResource.ClientResourceSaveRequest;
import com.newfiber.system.domain.request.clientResource.ClientResourceUpdateRequest;
import com.newfiber.system.enums.EManaggeRedisKey;
import com.newfiber.system.mapper.ClientResourceMapper;
import com.newfiber.system.service.IClientResourceService;
import java.util.List;
import java.util.Optional;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * 第三方客户端授权资源Service业务层处理
 * 
 * @author X.K
 * @date 2023-11-06
 */
@Service
public class ClientResourceServiceImpl extends BaseServiceImpl<ClientResourceMapper, ClientResource> implements IClientResourceService {

    @Resource
    private ClientResourceMapper clientResourceMapper;

    @Resource
    private RedisService redisService;

    @Override
    public long insert(ClientResourceSaveRequest request) {
        ClientResource clientResource = new ClientResource();
        BeanUtils.copyProperties(request, clientResource);
        save(clientResource);
        return Optional.of(clientResource).map(BaseEntity::getId).orElse(0L);
    }

    @Override
    public boolean update(ClientResourceUpdateRequest request) {
        ClientResource clientResource = new ClientResource();
        BeanUtils.copyProperties(request, clientResource);
        return updateById(clientResource);
    }

    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean delete(String ids) {
	    return deleteLogic(ids);
    }

	@Override
	public void refreshRedis(Long id) {
		ClientResourceQueryRequest resourceQueryRequest = new ClientResourceQueryRequest();
		resourceQueryRequest.setClientId(id);
		resourceQueryRequest.setStatus(EBoolean.True.getStringValue());
		List<ClientResource> clientResourceList = selectList(resourceQueryRequest);

		redisService.setCacheObject(EManaggeRedisKey.ClientResource, id.toString(), clientResourceList);
	}

	@Override
    public ClientResource selectDetail(Long id) {
        ClientResource clientResource = clientResourceMapper.selectById(id);
        if(null == clientResource){
	        throw new ServiceException(String.format("%s ID=%s 的记录不存在", this.getClass().getSimpleName(), id));
        }
        return clientResource;
    }

    @Override
    public List<ClientResource> selectPage(ClientResourceQueryRequest request) {
        return clientResourceMapper.selectByCondition(request);
    }

    @Override
    public List<ClientResource> selectList(ClientResourceQueryRequest request) {
        return clientResourceMapper.selectByCondition(request);
    }

}