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); } }