3:恢复回收站短链接
传入的参数 - RecycleBinRecoverReqDTO
@Data
public class RecycleBinRecoverReqDTO {
private String gid;
private String fullShortUrl;
}
controller(admin服务)
@PostMapping("/api/short-link/admin/v1/recycle-bin/recover")
public Result<Void> recoverRecycleBin(@RequestBody RecycleBinRecoverReqDTO requestParam) {
shortLinkActualRemoteService.recoverRecycleBin(requestParam);
return Results.success();
}
短链接中台远程调用服务 - ShortLinkActualRemoteService
@FeignClient(
value = "short-link-project",
url = "${aggregation.remote-url:}",
configuration = OpenFeignConfiguration.class
)
public interface ShortLinkActualRemoteService {
@PostMapping("/api/short-link/v1/recycle-bin/recover")
void recoverRecycleBin(@RequestBody RecycleBinRecoverReqDTO requestParam);
}
controller(project服务)
@PostMapping("/api/short-link/v1/recycle-bin/recover")
public Result<Void> recoverRecycleBin(@RequestBody RecycleBinRecoverReqDTO requestParam) {
recycleBinService.recoverRecycleBin(requestParam);
return Results.success();
}
servcie(project服务)
@Override
public void recoverRecycleBin(RecycleBinRecoverReqDTO requestParam) {
LambdaUpdateWrapper<ShortLinkDO> updateWrapper = Wrappers.lambdaUpdate(ShortLinkDO.class)
.eq(ShortLinkDO::getFullShortUrl, requestParam.getFullShortUrl())
.eq(ShortLinkDO::getGid, requestParam.getGid())
.eq(ShortLinkDO::getEnableStatus, 1)
.eq(ShortLinkDO::getDelFlag, 0);
ShortLinkDO shortLinkDO = ShortLinkDO.builder()
.enableStatus(0)
.build();
baseMapper.update(shortLinkDO, updateWrapper);
stringRedisTemplate.delete(String.format(GOTO_IS_NULL_SHORT_LINK_KEY, requestParam.getFullShortUrl()));
}